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};
10/// use veecle_telemetry::protocol::ExecutionId;
11///
12/// let execution_id = ExecutionId::random(&mut rand::rng());
13/// set_exporter(execution_id, &ConsoleJsonExporter).unwrap();
14/// ```
15#[derive(Debug)]
16pub struct ConsoleJsonExporter;
17
18impl Export for ConsoleJsonExporter {
19    fn export(&self, message: InstanceMessage) {
20        std::println!("{}", serde_json::to_string(&message).unwrap());
21    }
22}