Trait num_enum::TryFromPrimitive 
source · pub trait TryFromPrimitive: Sized {
    type Primitive: Copy + Eq + Debug;
    const NAME: &'static str;
    // Required method
    fn try_from_primitive(
        number: Self::Primitive
    ) -> Result<Self, TryFromPrimitiveError<Self>>;
}