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