about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorLzu Tao <taolzu@gmail.com>2019-11-12 03:08:19 +0000
committerLzu Tao <taolzu@gmail.com>2019-11-12 03:08:19 +0000
commit2de6c35d466c4114ef3f285bff2be57d156835e5 (patch)
tree72f94c91eb7066b47ef349075af1135084a72b5f /src
parente931f00f658b59481925deb0152503038ca69b9e (diff)
downloadrust-2de6c35d466c4114ef3f285bff2be57d156835e5.tar.gz
rust-2de6c35d466c4114ef3f285bff2be57d156835e5.zip
make Result::map_or_else consistent with Option::map_or_else
Diffstat (limited to 'src')
-rw-r--r--src/libcore/result.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/libcore/result.rs b/src/libcore/result.rs
index ed40a5f31d9..3ac43958c05 100644
--- a/src/libcore/result.rs
+++ b/src/libcore/result.rs
@@ -540,8 +540,11 @@ impl<T, E> Result<T, E> {
     /// ```
     #[inline]
     #[unstable(feature = "result_map_or_else", issue = "53268")]
-    pub fn map_or_else<U, M: FnOnce(T) -> U, F: FnOnce(E) -> U>(self, fallback: F, map: M) -> U {
-        self.map(map).unwrap_or_else(fallback)
+    pub fn map_or_else<U, D: FnOnce(E) -> U, F: FnOnce(T) -> U>(self, default: D, f: F) -> U {
+        match self {
+            Ok(t) => f(t),
+            Err(e) => default(e),
+        }
     }
 
     /// Maps a `Result<T, E>` to `Result<T, F>` by applying a function to a