This error means that an attempt was made to match a struct type enum variant as a non-struct type:
enum Foo { B { i: u32 } } fn bar(foo: Foo) -> u32 { match foo { Foo::B(i) => i, // error E0164 } }
Try using {} instead:
enum Foo { B { i: u32 } }
fn bar(foo: Foo) -> u32 {
match foo {
Foo::B{i} => i,
}
}