Where to request to implement FromStr for Wrapping<T: FromStr>

I ran into a problem where the following function cannot accept Wrapping types due to them not implementing FromStr even though all the types Wrapping accepts have FromStr implementations.

fn calc<T>(s: &str) -> Result<T, Error> where T: FromStr + Add<Output=T>...

I was wondering if this is a deliberate decision? If so what is the reason, I wasn't able to find any discussion. If it is just an oversight, I am happy to do the work to get this implemented and just need to be pointed in the right direction (RFC or Issue on the rust repo?).

You can just send a PR to the rust-lang/rust repo for adding simple trait impl like this.

1 Like

Note that trait impls are insta-stable, so you should expect more process and questions than for methods/types, which can go in as unstable and be tweaked over time.

One big question I would have for this: is "300".parse::<Wrapping<u8>>() supposed to give Err(_) or Ok(44)? Similarly, if we had other such wrapper types in num in the future, would "-1".parse::<Saturating<u64>>() be Ok(0)?

6 Likes

I was thinking that it would have the same error behavior as the wrapped type.

And while I'm not a member of any team, I would highly expect this to be a hard requirement to get merged. If any other behavior were the case, some very surprising bugs would arise.