| Crates.io | description |
| lib.rs | description |
| version | 0.3.0 |
| created_at | 2024-11-01 13:36:06.488132+00 |
| updated_at | 2024-11-02 13:22:14.874213+00 |
| description | like Display, but 'static |
| homepage | |
| repository | https://github.com/adryzz/description |
| max_upload_size | |
| id | 1431785 |
| size | 9,531 |
This library provides a trait and derive macro that is like std::fmt::Display, 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.
[dependencies]
description = "0.3.0"
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!()-like compile time formatting is also supported, thanks to const_format
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());
}