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}