Macro rerast_macros::replace_pattern
[−]
[src]
macro_rules! replace_pattern { ($a:pat = $at:ident => $b:pat = $bt:ident) => { ... }; }
Replaces a pattern with another pattern. A placeholder is required in order to specify the types of the search and replacement pattern. Although they can be the same if you're replacing a pattern with another of the same type.
Examples
fn some_foo_to_result_foo(p1: Option<Foo>, p2: Result<Foo, ()>) { replace_pattern!(Some(f1) = p1 => Result::Ok(f1) = p2); replace_pattern!(None = p1 => Result::Err(()) = p2); }
This will transform:
match f() { Some(Foo(x)) => x, None => 0, }
Into:
match f() { Result::Ok(Foo(x)) => x, Result::Err(()) => 0, }