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.
7pub struct NoopRecorder;
8
9impl Recorder for NoopRecorder {
10    fn describe_counter(&self, _key: KeyName, _unit: Option<Unit>, _description: SharedString) {}
11    fn describe_gauge(&self, _key: KeyName, _unit: Option<Unit>, _description: SharedString) {}
12    fn describe_histogram(&self, _key: KeyName, _unit: Option<Unit>, _description: SharedString) {}
13    fn register_counter(&self, _key: &Key, _metadata: &Metadata<'_>) -> Counter {
14        Counter::noop()
15    }
16    fn register_gauge(&self, _key: &Key, _metadata: &Metadata<'_>) -> Gauge {
17        Gauge::noop()
18    }
19    fn register_histogram(&self, _key: &Key, _metadata: &Metadata<'_>) -> Histogram {
20        Histogram::noop()
21    }
22}