labelled-enum

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 module to work with serde Serializer/Deserializer:

```rust

[derive(Serialize, Deserialize)]

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