use crate::proto::tero::policy::v1::{
AggregationTemporality, MetricType, SpanKind, SpanStatusCode,
};
pub fn metric_type_str(mt: MetricType) -> &'static str {
mt.as_str_name()
}
pub fn aggregation_temporality_str(at: AggregationTemporality) -> &'static str {
at.as_str_name()
}
pub fn span_status_code_str(sc: SpanStatusCode) -> &'static str {
sc.as_str_name()
}
pub fn span_kind_str(sk: SpanKind) -> &'static str {
sk.as_str_name()
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn metric_type_canonical_names() {
assert_eq!(metric_type_str(MetricType::Gauge), "METRIC_TYPE_GAUGE");
assert_eq!(metric_type_str(MetricType::Sum), "METRIC_TYPE_SUM");
assert_eq!(
metric_type_str(MetricType::Histogram),
"METRIC_TYPE_HISTOGRAM"
);
assert_eq!(
metric_type_str(MetricType::ExponentialHistogram),
"METRIC_TYPE_EXPONENTIAL_HISTOGRAM"
);
}
#[test]
fn aggregation_temporality_canonical_names() {
assert_eq!(
aggregation_temporality_str(AggregationTemporality::Delta),
"AGGREGATION_TEMPORALITY_DELTA"
);
assert_eq!(
aggregation_temporality_str(AggregationTemporality::Cumulative),
"AGGREGATION_TEMPORALITY_CUMULATIVE"
);
}
#[test]
fn span_status_code_canonical_names() {
assert_eq!(
span_status_code_str(SpanStatusCode::Ok),
"SPAN_STATUS_CODE_OK"
);
assert_eq!(
span_status_code_str(SpanStatusCode::Error),
"SPAN_STATUS_CODE_ERROR"
);
assert_eq!(
span_status_code_str(SpanStatusCode::Unspecified),
"SPAN_STATUS_CODE_UNSPECIFIED"
);
}
#[test]
fn span_kind_canonical_names() {
assert_eq!(span_kind_str(SpanKind::Internal), "SPAN_KIND_INTERNAL");
assert_eq!(span_kind_str(SpanKind::Server), "SPAN_KIND_SERVER");
assert_eq!(span_kind_str(SpanKind::Client), "SPAN_KIND_CLIENT");
assert_eq!(span_kind_str(SpanKind::Producer), "SPAN_KIND_PRODUCER");
assert_eq!(span_kind_str(SpanKind::Consumer), "SPAN_KIND_CONSUMER");
}
}