delve 0.3.0

Provides a number of macros that make working with enums and strings more convenient.
Documentation

use delve_derive::EnumDisplay;

#[test]
fn test() {
    #[derive(Debug, PartialEq, EnumDisplay)]
    #[allow(dead_code)]
    enum Week {
        Sunday,
        Monday,
        Tuesday,
        Wednesday,
        Thursday,
        Friday,
        Saturday,
    }

    assert_eq!("Sunday", format!("{}", Week::Sunday));
    assert_eq!("Wednesday", format!("{}", Week::Wednesday));
}

#[test]
fn test_attrs() {
    fn other(is: &bool) -> String {
        format!("tuesday? {}", is)
    }

    #[derive(Debug, PartialEq, EnumDisplay)]
    #[delve(rename_variants = "uppercase")]
    #[allow(dead_code)]
    enum Week {
        #[delve(display = "sunday")]
        Sunday,
        Monday,
        #[delve(display = other)]
        Tuesday {
            is: bool,
        },
        Wednesday,
        Thursday,
        #[delve(display = || "fri_day")]
        Friday,

        #[delve(display = |b: &bool, i: &usize| format!("saturday? {} {}", b, i))]
        Saturday(bool, usize),
    }

    assert_eq!("MONDAY", format!("{}", Week::Monday));
    assert_eq!("sunday", format!("{}", Week::Sunday));

    assert_eq!("fri_day", format!("{}", Week::Friday));

    assert_eq!("tuesday? true", format!("{}", Week::Tuesday { is: true }));
    assert_eq!(
        "saturday? false 100",
        format!("{}", Week::Saturday(false, 100))
    );
}