labelled-enum labelled-enum at crates.io labelled-enum at docs.rs

Converting an enum to/from String.

Getting Started

Derives ToString, FromStr impl:

```rust

[derive(ToString, FromStr)]

enum Test { Foo, Bar, }

asserteq!(Test::Foo.tostring(), "Foo"); asserteq!(Test::fromstr("Foo").unwrap(), Test::Foo); ```

Casing

You can specify snake_case using attribute:

```rust

[derive(ToString, FromStr)]

[label(renameall = "snakecase")]

enum Test { SnakeCase, } ```

Working with serde

labelled-enum provides serde_plugin feature to work with serde Serializer/Deserializer:

```rust // install labelled-enum with --features serde_plugin

[derive(Serialize, Deserialize)]

struct Wrapper { #[serde(with = "labelledenum::serdeplugin")] testsnakecase: TestSnakeCase, } ```