veecle_telemetry/collector/json_exporter.rs
1use super::Export;
2use crate::protocol::InstanceMessage;
3
4/// An exporter that outputs telemetry messages as JSON to stdout.
5///
6/// # Examples
7///
8/// ```rust
9/// use veecle_telemetry::collector::{ConsoleJsonExporter, set_exporter, ProcessId};
10///
11/// let process_id = ProcessId::random(&mut rand::rng());
12/// set_exporter(process_id, &ConsoleJsonExporter).unwrap();
13/// ```
14#[derive(Debug)]
15pub struct ConsoleJsonExporter;
16
17impl Export for ConsoleJsonExporter {
18 fn export(&self, message: InstanceMessage) {
19 std::println!("{}", serde_json::to_string(&message).unwrap());
20 }
21}