Skip to main content

DeriveLabel

Derive Macro DeriveLabel 

Source
#[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"
// ```