use crate::MetricEntry;
#[non_exhaustive]
pub enum Format {
Simple,
Prometheus,
}
pub fn default_formatter(metric: &MetricEntry, format: Format) -> String {
match format {
Format::Prometheus => {
let metadata: Vec<String> = metric
.metadata()
.iter()
.map(|(key, value)| format!("{key}=\"{value}\""))
.collect();
let metadata = metadata.join(", ");
if metadata.is_empty() {
metric.name().to_string()
} else {
format!("{}{{{metadata}}}", metric.name())
}
}
_ => metric.name().to_string(),
}
}