#[derive(DeriveLabel)]
{
// Attributes available to this derive:
#[label_name]
#[label]
}
Expand description
Derive macro for implementing LabelEnum on enums.
Automatically generates all required trait methods from the enum definition. Converts variant names to snake_case for Prometheus label values.
§Attributes
#[label_name = "..."](required on enum): The Prometheus label name#[label = "..."](optional on variant): Override the snake_case variant name
§Example
ⓘ
use fast_telemetry_macros::LabelEnum;
#[derive(LabelEnum)]
#[label_name = "method"]
enum HttpMethod {
Get,
Post,
Put,
Delete,
#[label = "other"]
Unknown,
}
// Generates:
// - CARDINALITY = 5
// - LABEL_NAME = "method"
// - as_index() returns 0, 1, 2, 3, 4
// - from_index() returns Get, Post, Put, Delete, Unknown
// - variant_name() returns "get", "post", "put", "delete", "other"
// ```