pub fn variant_of<'a, Enum, Variant>(
getter: for<'b> fn(&'b Enum) -> Option<&'b Variant>,
setter: for<'b> fn(&'b mut Enum) -> Option<&'b mut Variant>,
embedder: fn(Variant) -> Enum,
) -> EnumKpType<'a, Enum, Variant>Expand description
Create an enum keypath for a specific variant with type inference
ยงExample
use rust_key_paths::variant_of;
enum MyEnum {
A(String),
B(i32),
}
let kp_a = variant_of(
|e: &MyEnum| match e { MyEnum::A(s) => Some(s), _ => None },
|e: &mut MyEnum| match e { MyEnum::A(s) => Some(s), _ => None },
|s: String| MyEnum::A(s)
);