about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2019-11-24 07:37:01 +0000
committerbors <bors@rust-lang.org>2019-11-24 07:37:01 +0000
commit7d761fe0462ba0f671a237d0bb35e3579b8ba0e8 (patch)
treed7d3f93996e6f797a33361a13f051d2d7fe27457 /src
parente41ced3f8d8e2f3f377ef931458e612d5f3d1f3f (diff)
parentc06a8ea727c720ed47b3f54192e92c449252d231 (diff)
downloadrust-7d761fe0462ba0f671a237d0bb35e3579b8ba0e8.tar.gz
rust-7d761fe0462ba0f671a237d0bb35e3579b8ba0e8.zip
Auto merge of #66322 - lzutao:consistent-result-map_or_else, r=dtolnay
Stabilize Result::map_or_else

Stabilized this API:
```rust
impl<T, E> Result<T, E> {
    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),
        }
    }
}
```

Closes #53268
r? @SimonSapin
Diffstat (limited to 'src')
-rw-r--r--src/libcore/result.rs10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/libcore/result.rs b/src/libcore/result.rs
index 06c7041703a..1a0845f3a6d 100644
--- a/src/libcore/result.rs
+++ b/src/libcore/result.rs
@@ -551,7 +551,6 @@ impl<T, E> Result<T, E> {
     /// Basic usage:
     ///
     /// ```
-    /// #![feature(result_map_or_else)]
     /// let k = 21;
     ///
     /// let x : Result<_, &str> = Ok("foo");
@@ -561,9 +560,12 @@ impl<T, E> Result<T, E> {
     /// assert_eq!(x.map_or_else(|e| k * 2, |v| v.len()), 42);
     /// ```
     #[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)
+    #[stable(feature = "result_map_or_else", since = "1.41.0")]
+    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