This is outdatded. Mutexes don't allocate anymore. That's how Mutex::new
can be const.
this post was submitted on 26 Jun 2024
94 points (100.0% liked)
Rust
5744 readers
13 users here now
Welcome to the Rust community! This is a place to discuss about the Rust programming language.
Wormhole
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
Nice sheet, though I have a few critiques:
- Why does it say
where T: Sized
for 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: 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]>
Because when T
is !Sized
, the layout is different, it looks more like the layout of &[T]
.