Macro stdext::return_some
source · macro_rules! return_some { ($var:expr) => { ... }; (inner $var:expr) => { ... }; }
Expand description
Checks whether supplied Option
variable is Some
and if so, returns it.
If variant is an None
, nothing happens.
This macro supports two forms:
return_some!(Some(42));
- will returnSome(42)
.return_some!(inner Some(42));
- will return just42
.
§Examples
fn choose_one(left: Option<u8>, right: Option<u8>) -> Option<u8> {
return_some!(left);
return_some!(right);
None
}
fn choose_one_inner(left: Option<u8>, right: Option<u8>) -> u8 {
return_some!(inner left);
return_some!(inner right);
panic!("Both variables are bad")
}
assert_eq!(choose_one(None, Some(10)), Some(10));
assert_eq!(choose_one_inner(Some(1), None), 1);