rust-conv icon indicating copy to clipboard operation
rust-conv copied to clipboard

SaturatingInto

Open That3Percent opened this issue 5 years ago • 0 comments

Would you be open to a PR that adds SaturatingInto / SaturatingFrom traits?

Eg:

trait SaturatingInto<T> {
    fn saturating_into(self) -> T;
}

impl SaturatingFrom<usize> for u64 {
    fn saturating_from(self) -> T {
        self.try_into().unwrap_or_else(u64::MAX)
    }
}

This would allow more straightforward conversions so that instead of using:

assert_eq!(u8::value_from(-1i16).unwrap_or_saturate(),  0u8);

One may write:

assert_eq!(-1i16.saturating_into(),  0u8);

I would be happy to contribute this PR.

That3Percent avatar Feb 23 '21 19:02 That3Percent