rust_helpers/
result_ext.rs

1pub trait ResultExt<T, E> {
2    fn map_into<U>(self) -> Result<U, E>
3    where
4        U: From<T>;
5    fn map_err_into<F>(self) -> Result<T, F>
6    where
7        F: From<E>;
8}
9
10impl<T, E> ResultExt<T, E> for Result<T, E> {
11    fn map_into<U>(self) -> Result<U, E>
12    where
13        U: From<T>,
14    {
15        self.map(Into::into)
16    }
17
18    fn map_err_into<F>(self) -> Result<T, F>
19    where
20        F: From<E>,
21    {
22        self.map_err(Into::into)
23    }
24}