1 use crate::traits::Sealed;
2 
3 pub trait Result_v1_41<T, E>: Sealed<Result<T, E>> {
map_or<U, F: FnOnce(T) -> U>(self, default: U, f: F) -> U4     fn map_or<U, F: FnOnce(T) -> U>(self, default: U, f: F) -> U;
map_or_else<U, D: FnOnce(E) -> U, F: FnOnce(T) -> U>(self, default: D, f: F) -> U5     fn map_or_else<U, D: FnOnce(E) -> U, F: FnOnce(T) -> U>(self, default: D, f: F) -> U;
6 }
7 
8 impl<T, E> Result_v1_41<T, E> for Result<T, E> {
9     #[inline]
map_or<U, F: FnOnce(T) -> U>(self, default: U, f: F) -> U10     fn map_or<U, F: FnOnce(T) -> U>(self, default: U, f: F) -> U {
11         match self {
12             Ok(t) => f(t),
13             Err(_) => default,
14         }
15     }
16 
17     #[inline]
map_or_else<U, D: FnOnce(E) -> U, F: FnOnce(T) -> U>(self, default: D, f: F) -> U18     fn map_or_else<U, D: FnOnce(E) -> U, F: FnOnce(T) -> U>(self, default: D, f: F) -> U {
19         match self {
20             Ok(t) => f(t),
21             Err(e) => default(e),
22         }
23     }
24 }
25