enum-tools 0.5.5

Automatically derive functions and trait implementations for enums
Documentation
mod eg {
    #![no_implicit_prelude]

    use ::enum_tools::EnumTools;

    #[allow(dead_code)]
    #[derive(EnumTools, Clone, Copy, Eq, PartialEq)]
    // everything with an auto mode
    #[enum_tools(as_str, FromStr, from_str, iter)]
    // everything else
    #[enum_tools(Debug, Display, Into, into, MAX, MIN)]
    #[enum_tools(names, next, next_back, range, TryFrom, try_from)]
    #[repr(i8)]
    pub(crate) enum EG {
        #[enum_tools(rename = "A*")]
        A,
        B,
        C,
        D,
    }
}

mod eh {
    #![no_implicit_prelude]

    use ::enum_tools::EnumTools;

    #[allow(dead_code)]
    #[derive(EnumTools, Clone, Copy, Eq, PartialEq)]
    // everything with an auto mode
    #[enum_tools(as_str, FromStr, from_str, iter)]
    // everything else
    #[enum_tools(Debug, Display, Into, into, IntoStr, MAX, MIN)]
    #[enum_tools(names, next, next_back, range, TryFrom, try_from)]
    #[repr(i8)]
    pub(crate) enum EH {
        #[enum_tools(rename = "A*")]
        A = 0,
        B = 9,
        C = 2,
        D = 1,
    }
}

// fix while https://github.com/rust-lang/rust/issues/102190 is not fixed
#[allow(dead_code)]
fn no_op() {
    eg::EG::A.into();
    eh::EH::A.into();
}