1 2 3 4 5 6 7 8 9 10 11 12
pub trait TryFromFilter<'a, T>: Sized { fn filter(t: T) -> Option<&'a Self>; } impl<'a, T: 'a, U> TryFromFilter<'a, U> for T where &'a T: TryFrom<U>, { fn filter(u: U) -> Option<&'a T> { <&'a T>::try_from(u).ok() } }