delve 0.3.0

Provides a number of macros that make working with enums and strings more convenient.
Documentation
use core::str::FromStr;

use delve_derive::EnumFromStr;

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

    assert_eq!(Ok(Week::Sunday), Week::from_str("Sunday"));
    assert_eq!(Ok(Week::Tuesday), Week::from_str("Tuesday"));
}

#[test]
fn test_attrs() {
    #[derive(Debug, PartialEq, EnumFromStr)]
    #[allow(dead_code)]
    #[delve(rename_variants = "uppercase")]
    enum Week {
        #[delve(ascii_case_insensitive)]
        Sunday,
        Monday,
        Tuesday,
        Wednesday,
        Thursday,
        #[delve(from = "friday", from = "fri")]
        Friday,
        Saturday,
    }

    assert_eq!(Ok(Week::Sunday), Week::from_str("sunday"));
    assert_eq!(Ok(Week::Sunday), Week::from_str("SuNdAy"));

    assert_eq!(Ok(Week::Tuesday), Week::from_str("TUESDAY"));

    assert_eq!(Ok(Week::Friday), Week::from_str("friday"));
    assert_eq!(Ok(Week::Friday), Week::from_str("fri"));
}