hermod/dispatcher/backend/
mod.rs1use crate::dispatcher::traits::Metric;
4use crate::protocol::types::{DetailLevel, TraceObject};
5use anyhow::Result;
6use async_trait::async_trait;
7use serde_json::Value;
8
9pub mod datapoint;
10pub mod ekg;
11pub mod forwarder;
12pub mod stdout;
13
14#[derive(Debug, Clone)]
16pub struct DispatchMessage {
17 pub trace_object: TraceObject,
19 pub human: String,
21 pub machine: Value,
23 pub metrics: Vec<Metric>,
25 pub detail: DetailLevel,
27}
28
29#[async_trait]
31pub trait Backend: Send + Sync {
32 async fn dispatch(&self, msg: &DispatchMessage) -> Result<()>;
34}