macro_rules! try_left { ($expr:expr) => { ... }; }
Expand description
Macro for unwrapping the left side of an Either
, which fails early
with the opposite side. Can only be used in functions that return
Either
because of the early return of Right
that it provides.
See also try_right!
for its dual, which applies the same just to the
right side.
ยงExample
use either::{Either, Left, Right};
fn twice(wrapper: Either<u32, &str>) -> Either<u32, &str> {
let value = either::try_left!(wrapper);
Left(value * 2)
}
fn main() {
assert_eq!(twice(Left(2)), Left(4));
assert_eq!(twice(Right("ups")), Right("ups"));
}