pub trait CreateVariantFrom<T, Marker = ()> {
    fn create_variant_from(value: T) -> Self;
}
Expand description

This trait allows one to create a new instance of an enum from a value whose type matches one of the types of the field of the enum.

Example:

 use variant_access_traits::*;
 use variant_access_derive::*;

 enum Enum {
     F1(i64),
     F2(bool)
 }

 let instance = Enum::create_from(false); // instance is now equal to Enum::F2(false)
 // let instance = Enum::create_from("") // will not compile as Enum has no field of type &str

Similar to the SetVariant, the as keyword should be used in the case of ambiguous typing.

This trait has a generic paramer Marker for adding marker structs. This is used if implementing this trait for enums with more than one generic parameter in order to avoid definition clashes.

Required Methods

Implementors