metrics_runtime/data/
gauge.rs

1use crate::common::ValueHandle;
2
3/// A reference to a [`Gauge`].
4///
5/// A [`Gauge`] is used for directly updating a gauge, without any lookup overhead.
6#[derive(Clone)]
7pub struct Gauge {
8    handle: ValueHandle,
9}
10
11impl Gauge {
12    /// Records a value for the gauge.
13    pub fn record(&self, value: i64) {
14        self.handle.update_gauge(value);
15    }
16
17    /// Increments the gauge's value
18    pub fn increment(&self, value: i64) {
19        self.handle.increment_gauge(value);
20    }
21
22    /// Decrements the gauge's value
23    pub fn decrement(&self, value: i64) {
24        self.handle.decrement_gauge(value);
25    }
26}
27
28impl From<ValueHandle> for Gauge {
29    fn from(handle: ValueHandle) -> Self {
30        Self { handle }
31    }
32}