stefans_utils/
map_into.rs

1pub trait MapInto<T> {
2    fn map_into(self) -> T;
3}
4
5impl<A: Into<B>, B> MapInto<Option<B>> for Option<A> {
6    fn map_into(self) -> Option<B> {
7        self.map(A::into)
8    }
9}
10
11impl<OkA: Into<OkB>, ErrA: Into<ErrB>, OkB, ErrB> MapInto<Result<OkB, ErrB>> for Result<OkA, ErrA> {
12    fn map_into(self) -> Result<OkB, ErrB> {
13        match self {
14            Ok(a) => Ok(a.into()),
15            Err(err_a) => Err(err_a.into()),
16        }
17    }
18}