derive_convert 0.7.0

Derives 'impl (Try)From for Self' and 'impl (Try)From<Self>'
Documentation
use derive_convert::Convert;

#[derive(Convert, PartialEq, Debug)]
#[try_from_self(V1 = "Color1", V2 = "v2::Color2", Error = "()")]
enum Color {
    Red,
    #[try_from_self(V1(rename("Blues")))]
    Blue,
}

#[allow(dead_code)]
#[derive(PartialEq, Debug)]
enum Color1 {
    Red,
    Blues,
}

mod v2 {
    #[allow(dead_code)]
    #[derive(PartialEq, Debug)]
    pub(super) enum Color2 {
        Red,
        Blue,
    }
}

#[test]
fn try_from_self_enum() {
    let color1: Color1 = Color::Red.try_into().unwrap();
    assert_eq!(color1, Color1::Red);
    let color2: v2::Color2 = Color::Blue.try_into().unwrap();
    assert_eq!(color2, v2::Color2::Blue);
}