use std::sync::Arc;
use std::time::Duration;
pub trait Metrics: Send + Sync + 'static {
fn on_frame_sent(&self, bytes: usize) {
let _ = bytes;
}
fn on_frame_received(&self, bytes: usize) {
let _ = bytes;
}
fn on_transfer_sent(&self) {}
fn on_transfer_received(&self) {}
fn on_settlement(&self) {}
fn on_credit(&self, handle: u32, credit: u32) {
let _ = (handle, credit);
}
fn on_inflight(&self, delta: i64) {
let _ = delta;
}
fn on_reconnect(&self, attempt: u32) {
let _ = attempt;
}
fn on_send_to_settle(&self, latency: Duration) {
let _ = latency;
}
}
#[derive(Debug, Default, Clone, Copy)]
pub struct NoopMetrics;
impl Metrics for NoopMetrics {}
pub type SharedMetrics = Arc<dyn Metrics>;
pub fn noop_metrics() -> SharedMetrics {
Arc::new(NoopMetrics)
}