enum-display
enum-display is a crate for implementing std::fmt::Display on enum variants with macros.
Features
std(default): Enables standard library support for convenience methods liketo_string()no_std: Core functionality that works inno_stdenvironments without allocation
Using in no_std environments
To use in no_std mode, disable default features:
[]
= { = "0.2.1", = false }
The crate works without allocation by writing directly to the formatter:
extern crate alloc;
use ToString;
use EnumDisplay;
Simple Example
use EnumDisplay;
assert_eq!;
assert_eq!;
assert_eq!;
Example With Custom Case Transform
Any case from convert_case is supported.
use EnumDisplay;
assert_eq!;
Custom Variant Formatting with #[display]
The #[display] attribute allows you to customize how individual enum variants are formatted. This attribute accepts a format string that follows Rust's standard formatting syntax.
Basic Usage
use EnumDisplay;
assert_eq!;
assert_eq!;
Field Access Patterns
The #[display] attribute provides different ways to access variant data:
| Variant Type | Access Pattern | Example |
|---|---|---|
| Unit | {variant} only |
#[display("{variant} occurred")] |
| Named {...} | Field names | #[display("Error: {message} (code: {code})")] |
| Tuple (...) | Positional indices | #[display("Processing {0} of {1}")] |
Named Fields Example
use EnumDisplay;
let success = Success ;
assert_eq!;
Tuple Fields Example
use EnumDisplay;
assert_eq!;
assert_eq!;
Advanced Formatting
The #[display] attribute supports all of Rust's format string features:
use EnumDisplay;