use std::time::Duration;
use reliar_core::{FailureKind, MessageType};
use crate::store::DeadReason;
#[cfg_attr(not(feature = "test-support"), doc = "```ignore")]
#[cfg_attr(feature = "test-support", doc = "```")]
pub trait OutboxMetrics: Send + Sync {
#[cfg_attr(not(feature = "test-support"), doc = "```ignore")]
#[cfg_attr(feature = "test-support", doc = "```")]
fn claimed(&self, _n: usize) {}
fn published(&self, _n: usize, _message_type: &MessageType) {}
fn retried(&self, _n: usize, _kind: FailureKind) {}
#[cfg_attr(not(feature = "test-support"), doc = "```ignore")]
#[cfg_attr(feature = "test-support", doc = "```")]
fn dead(&self, _n: usize, _reason: DeadReason) {}
fn publish_duration(&self, _d: Duration, _message_type: &MessageType) {}
#[cfg_attr(not(feature = "test-support"), doc = "```ignore")]
#[cfg_attr(feature = "test-support", doc = "```")]
fn pending(&self, _n: u64) {}
#[cfg_attr(not(feature = "test-support"), doc = "```ignore")]
#[cfg_attr(feature = "test-support", doc = "```")]
fn expired_pending(&self, _n: u64) {}
fn oldest_pending_age(&self, _age: Duration) {}
}
#[derive(Clone, Copy, Debug, Default)]
pub struct NoopMetrics;
impl OutboxMetrics for NoopMetrics {}