How do I pass an enum variant to match on as a function parameter?
问题 I would like to pass in the parameters what arm of the enum I need to match, something like this: enum D { A(i64), B(u64), C(u64, u64), } let a = D.A(10); println!(a.is_of(D.A)); // true println!(a.is_of(D.B)); // false I know I can use matching rules for this, but I'd like this is_of method to take as an input of the enum options for my purposes. 回答1: You cannot. It is not possible to pass types as function parameters. Enum variants are not types to start with. If you are OK using a macro