Skip to main content

metrics/recorder/
noop.rs

1use crate::{Counter, Gauge, Histogram, Key, KeyName, Metadata, Recorder, SharedString, Unit};
2
3/// A no-op recorder.
4///
5/// Used as the default recorder when one has not been installed yet.  Useful for acting as the root
6/// recorder when testing layers.
7#[derive(Debug)]
8pub struct NoopRecorder;
9
10impl Recorder for NoopRecorder {
11    fn describe_counter(&self, _key: KeyName, _unit: Option<Unit>, _description: SharedString) {}
12    fn describe_gauge(&self, _key: KeyName, _unit: Option<Unit>, _description: SharedString) {}
13    fn describe_histogram(&self, _key: KeyName, _unit: Option<Unit>, _description: SharedString) {}
14    fn register_counter(&self, _key: &Key, _metadata: &Metadata<'_>) -> Counter {
15        Counter::noop()
16    }
17    fn register_gauge(&self, _key: &Key, _metadata: &Metadata<'_>) -> Gauge {
18        Gauge::noop()
19    }
20    fn register_histogram(&self, _key: &Key, _metadata: &Metadata<'_>) -> Histogram {
21        Histogram::noop()
22    }
23}