enum-path-derive 0.1.0

Derive macro for the enum-path crate
Documentation
# enum-path

Derive `FromStr` and `Display` impls for enums that follow a hierarchical
path-like serialization scheme.

```rust
use enum_path::EnumPath;

#[derive(EnumPath)]
#[enum_path(FromStr, Display, rename_all = "snake_case")]
enum Action {
    Exit,
    SendMessage(String),
    SetState(State),
}

#[derive(EnumPath)]
#[enum_path(FromStr, Display)]
enum State {
    Idle,
    Ready,
    Running(Phase),
}

#[derive(EnumPath)]
#[enum_path(FromStr, Display)]
enum Phase {
    Init,
    Execute,
}

let action: Action = "set_state.Running.Execute".parse().unwrap();
assert_eq!(action.to_string(), "set_state.Running.Execute");
```

## Enum-level attributes

| Attribute                       | Effect                                                                |
|---------------------------------|-----------------------------------------------------------------------|
| `FromStr`                       | Derive `core::str::FromStr`.                                          |
| `Display`                       | Derive `core::fmt::Display`.                                          |
| `rename_all = "..."`            | Rename every variant; supports the usual serde-style cases.           |
| `delimiter = "..."`             | Separator between a variant name and its inner type (default `"."`).  |
| `case_insensitive`              | Parse variant names with `eq_ignore_ascii_case`.                      |
| `error = MyError`               | Use a custom error type that implements `From<enum_path::Error>`.     |
| `crate = path`                  | Override the runtime crate path when `enum_path` is re-exported.      |

## Per-variant attributes

| Attribute             | Effect                                          |
|-----------------------|-------------------------------------------------|
| `rename = "..."`      | Override this variant's serialized name.        |