1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#[async_trait::async_trait]
pub trait MetricsCollector: Send + Sync {
async fn publish(&self, count: u64);
async fn consume(&self, count: u64);
async fn publish_confirm(&self, count: u64);
async fn publish_error(&self, count: u64);
}
pub struct NopMetricsCollector {}
#[async_trait::async_trait]
impl MetricsCollector for NopMetricsCollector {
async fn publish(&self, _count: u64) {}
async fn publish_confirm(&self, _count: u64) {}
async fn publish_error(&self, _count: u64) {}
async fn consume(&self, _count: u64) {}
}