made_core/entities/
metric_sample.rs1use std::collections::BTreeMap;
2
3use crate::value_objects::{MetricLabelName, MetricLabelValue, MetricName, MetricValue};
4
5#[derive(Clone, Debug, PartialEq)]
7pub struct MetricSample {
8 name: MetricName,
9 labels: BTreeMap<MetricLabelName, MetricLabelValue>,
10 value: MetricValue,
11}
12
13impl MetricSample {
14 #[must_use]
15 pub fn new(
16 name: MetricName,
17 labels: BTreeMap<MetricLabelName, MetricLabelValue>,
18 value: MetricValue,
19 ) -> Self {
20 Self {
21 name,
22 labels,
23 value,
24 }
25 }
26
27 #[must_use]
28 pub fn name(&self) -> &MetricName {
29 &self.name
30 }
31
32 #[must_use]
33 pub fn labels(&self) -> &BTreeMap<MetricLabelName, MetricLabelValue> {
34 &self.labels
35 }
36
37 #[must_use]
38 pub fn value(&self) -> MetricValue {
39 self.value
40 }
41}