Skip to main content

made_core/entities/
metrics_snapshot.rs

1use crate::entities::MetricFamily;
2use crate::value_objects::PrometheusText;
3
4/// One read of an in-process operational metrics registry.
5#[derive(Clone, Debug, Default, PartialEq)]
6pub struct MetricsSnapshot {
7    text: PrometheusText,
8    families: Vec<MetricFamily>,
9}
10
11impl MetricsSnapshot {
12    #[must_use]
13    pub fn new(text: PrometheusText, families: Vec<MetricFamily>) -> Self {
14        Self { text, families }
15    }
16
17    #[must_use]
18    pub fn empty() -> Self {
19        Self::default()
20    }
21
22    #[must_use]
23    pub fn text(&self) -> &PrometheusText {
24        &self.text
25    }
26
27    #[must_use]
28    pub fn families(&self) -> &[MetricFamily] {
29        &self.families
30    }
31}