description 0.3.0

like Display, but 'static
Documentation
# derive(Description)

This library provides a trait and derive macro that is like [`std::fmt::Display`](https://doc.rust-lang.org/std/fmt/trait.Display.html), but using compile-time strings.

The library is fully `no_std` and `no_alloc`, and is meant to provide user-facing text for enum-like status messages without code bloat.

```toml
[dependencies]
description = "0.3.0"
```

## Example

```rs
use description::Description;

#[derive(Description)]
enum ChargerStatus {
    #[description("Charger connected!")]
    Connected,

    #[description("Charger disconnected!")]
    Disconnected,
}

fn main() {
    let charger = ChargerStatus::Connected;

    println!("Charger notification: {}", charger.description());
}
```
[`std::fmt::format!()`](https://doc.rust-lang.org/std/macro.format.html)-like compile time formatting is also supported, thanks to [`const_format`](https://crates.io/crates/const_format/)

```rust
use description::Description;

const SOME_CONSTANT: usize = 5;

#[derive(Description)]
enum SomeStatusEnum {
    #[description("the constant is {SOME_CONSTANT}, and the max u32 is {}", u32::MAX)]
    ShowConstant,

    #[description("i'm not showing the constant")]
    DontShowConstant,
}

fn main() {
    let charger = SomeStatusEnum::ShowConstant;

    println!("enum message: {}", charger.description());
}
```