1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
use std::convert::TryInto; use std::fmt; pub trait To { fn to<T>(self) -> T where Self: Into<T> + Sized { self.into() } } impl<T> To for T {} pub trait TryTo { fn try_to<T>(self) -> T where Self: TryInto<T> + Sized, <Self as TryInto<T>>::Error: fmt::Debug { self.try_into().unwrap() } } impl<T> TryTo for T {}