this post was submitted on 18 Jul 2023
23 points (100.0% liked)
Rust
6005 readers
5 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
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I'm surprised by the ambiguity shown in the last example. Shouldn't the concrete return type for an
impl Into<u32>
be completely inaccessible outside of the function? Otherwise it would allow to introduce breaking changes without changing a function API.But in this case, how would it be possible that
impl_trait().into()
is anu16
?I guess it's only accessible to the mem::size_of because it has an implicit Sized bound as well. So really the bound is impl Into + Sized and I don't think the code using the function is assuming anything else.
But I do agree it feels weird. I feel like the function should know its return type regardless of how it is used?