Macro erg_common::enum_unwrap
source · macro_rules! enum_unwrap { ($ex: expr, $Enum: path $(,)*) => { ... }; ($ex: expr, $Enum: path :( $Cons: path :(_) ) $(,)*) => { ... }; ($ex: expr, $Enum: path :( $Cons: path :( $Cons2: path :(_) ) ) $(,)*) => { ... }; ($ex: expr, $Enum: path {$($fields: ident $(,)*)*}) => { ... }; }
Expand description
Supports up to double unwrap
:
is a dummy token to bypass restrictions
use erg_common::Str;
let i: i32 = enum_unwrap!(Some(1), Some);
let s: &str = enum_unwrap!(Some(Str::ever("a")), Some:(Str::Static:(_)));