Found this on Mastodon https://fosstodon.org/@dpom/112681955888465502 , and it is a very nice overview of the containers and their layout.
You must log in or # to comment.
Nice sheet, though I have a few critiques:
- Why does it say
where T: Sizedfor references&T? A reference can definitely point to an unsized type, e.g.&str. - The yellow boxes really mean “must be heap allocated” - all the other references (
&T,&[T]and&dyn Trait) may either point to the stack or the heap.
- Why does it say
where T: Sizedfor references&T? A reference can definitely point to an unsized type, e.g.&str.
I think the point being made is that the layout shown only applies for
SizedT. Layouts for&[T]and&dyn Traitare shown elsewhere on the sheet.&stris noted under&[T].Edit: although, similar considerations would apply to other pointer types, but that isn’t noted on the sheet except for
Box<[T]>- Why does it say
Because when
Tis!Sized, the layout is different, it looks more like the layout of&[T].
- Why does it say
This is outdatded. Mutexes don’t allocate anymore. That’s how
Mutex::newcan be const.




