1pub use metricrs_derive::*;
2
3use crate::Token;
4
5pub enum DeriveKind {
7 Counter,
9 Timer,
11 Gauge,
13}
14
15#[derive(Default)]
17pub struct DeriveOption<'a> {
18 pub kind: Option<DeriveKind>,
20 pub name: Option<&'a str>,
22 pub labels: Option<&'a [(&'a str, &'a str)]>,
24}
25
26impl<'a> From<DeriveOption<'a>> for Token<'a> {
27 fn from(value: DeriveOption<'a>) -> Self {
28 Self::new(
29 value.name.unwrap_or(concat!(module_path!(), column!())),
30 value.labels.unwrap_or_default(),
31 )
32 }
33}