| Ugh. You're absolutely right. I never liked those even in C. So, it seems like this is relative easy to do on the stack, which is how the example does it presently. See the link below to my attempt; the stack allocation is still all safe code, still a single line. However, I presume that one will want to also create one on the heap, especially since in the example the author poses it would be a rather large stack allocation, and one might — quite reasonably — put that on the heap. My attempt is here: https://play.rust-lang.org/?gist=1c50b35941506316372da860cae... Couldn't avoid the unsafe for that, but, I was able to get rid of the transmute call, and transmute is a function where the warning on the tin is "this function is not just unsafe, it is radioactive". But the amount of code required still felt a bit lacking. It seems these are an area of active work[1][2] currently. I think there is still definitely a valid point that the author is hitting — that encoding more information into the program can allow the compiler to catch more classes of errors. (This is, after all, the very logic that gave us Rust.) [1]: https://github.com/rust-lang/rfcs/pull/1909 [2]: https://github.com/rust-lang/rust/issues/18806 |