this post was submitted on 26 Jun 2024
95 points (100.0% liked)

Rust

5767 readers
9 users here now

Welcome to the Rust community! This is a place to discuss about the Rust programming language.

Wormhole

[email protected]

Credits

  • The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)

founded 1 year ago
MODERATORS
 

Found this on Mastodon https://fosstodon.org/@dpom/112681955888465502 , and it is a very nice overview of the containers and their layout.

you are viewing a single comment's thread
view the rest of the comments
[โ€“] [email protected] 10 points 2 months ago (2 children)

Nice sheet, though I have a few critiques:

  1. Why does it say where T: Sized for references &T? A reference can definitely point to an unsized type, e.g. &str.
  2. 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.
[โ€“] [email protected] 6 points 2 months ago* (last edited 2 months ago)
  1. Why does it say where T: Sized for 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 Sized T. Layouts for &[T] and &dyn Trait are shown elsewhere on the sheet. &str is 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]>

load more comments (1 replies)