From e520b77efed718dd6ba4509f5a8d5860ad80e660 Mon Sep 17 00:00:00 2001 From: Clar Charr Date: Tue, 10 Jan 2017 22:17:47 -0500 Subject: expect_err for Result. --- src/libcore/result.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/libcore') diff --git a/src/libcore/result.rs b/src/libcore/result.rs index 99c407e5273..f02df88bb2e 100644 --- a/src/libcore/result.rs +++ b/src/libcore/result.rs @@ -798,6 +798,31 @@ impl Result { Err(e) => e, } } + + /// Unwraps a result, yielding the content of an `Err`. + /// + /// # Panics + /// + /// Panics if the value is an `Ok`, with a panic message including the + /// passed message, and the content of the `Ok`. + /// + /// # Examples + /// + /// Basic usage: + /// + /// ```{.should_panic} + /// # #![feature(result_expect_err)] + /// let x: Result = Ok(10); + /// x.expect_err("Testing expect_err"); // panics with `Testing expect_err: 10` + /// ``` + #[inline] + #[unstable(feature = "result_expect_err", issue = "39041")] + pub fn expect_err(self, msg: &str) -> E { + match self { + Ok(t) => unwrap_failed(msg, t), + Err(e) => e, + } + } } impl Result { -- cgit 1.4.1-3-g733a5