httpgenerator_cli/telemetry/
sink.rs1use super::TelemetryEvent;
2
3pub trait TelemetrySink {
4 fn emit(&mut self, event: TelemetryEvent);
5}
6
7#[derive(Debug, Default)]
8pub struct NoopTelemetrySink;
9
10impl TelemetrySink for NoopTelemetrySink {
11 fn emit(&mut self, _event: TelemetryEvent) {}
12}
13
14#[derive(Debug, Default)]
15pub struct MemoryTelemetrySink {
16 events: Vec<TelemetryEvent>,
17}
18
19impl MemoryTelemetrySink {
20 pub fn events(&self) -> &[TelemetryEvent] {
21 &self.events
22 }
23}
24
25impl TelemetrySink for MemoryTelemetrySink {
26 fn emit(&mut self, event: TelemetryEvent) {
27 self.events.push(event);
28 }
29}