labelled-enum 0.1.1

Converting an enum to/from String
Documentation
#[cfg(feature = "serde")]
mod tests {
    use labelled_enum::{FromStr, ToString};
    use serde::*;

    #[derive(ToString, FromStr, Debug, PartialEq)]
    #[label(rename_all = "snake_case")]
    enum TestSnakeCase {
        SnakeCase,
    }

    #[derive(Serialize, Deserialize, Debug, PartialEq)]
    #[serde(rename_all = "camelCase")]
    struct Wrapper {
        #[serde(with = "labelled_enum::serde_plugin")]
        test_snake_case: TestSnakeCase,
    }

    #[test]
    fn test_serde() {
        assert_eq!(
            serde_json::to_string(&Wrapper {
                test_snake_case: TestSnakeCase::SnakeCase,
            })
            .unwrap(),
            "{\"testSnakeCase\":\"snake_case\"}"
        );
        assert_eq!(
            serde_json::from_str::<Wrapper>(r#"{"testSnakeCase": "snake_case"}"#).unwrap(),
            Wrapper {
                test_snake_case: TestSnakeCase::SnakeCase,
            }
        );
    }
}