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_std
environments 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;