extract-variant 1.0.0

Destructure expressions into, and return assignments from, a single pattern.
Documentation
1
2
3
4
5
6
7
8
9
10
11
use variant::try_variant;

struct Test {
    a: u8,
    b: Option<u8>,
}

fn main() {
    let val = Test { a: 1, b: Some(2) };
    let _ = try_variant!(val, Test { a, b: Some(1) | Some(2) });
}