From 27d8ea05a257af534579c5ecef79d45781f3a8f0 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Sat, 10 May 2014 13:48:26 -0700 Subject: [PATCH] core: Implement and export the try! macro This is used quite extensively by core::fmt --- src/libcore/macros.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/libcore/macros.rs b/src/libcore/macros.rs index 11b74aaffe9..a04d93260c5 100644 --- a/src/libcore/macros.rs +++ b/src/libcore/macros.rs @@ -59,3 +59,9 @@ macro_rules! assert( macro_rules! debug_assert( ($($arg:tt)*) => (if cfg!(not(ndebug)) { assert!($($arg)*); }) ) + +/// Short circuiting evaluation on Err +#[macro_export] +macro_rules! try( + ($e:expr) => (match $e { Ok(e) => e, Err(e) => return Err(e) }) +)