pub mod status;
#[cfg(any(test, feature = "test-utils"))]
pub mod collector;
pub trait TracedExt {
fn traced(self) -> i64;
}
macro_rules! impl_traced {
($($ty:ty),+ $(,)?) => {
$(
impl TracedExt for $ty {
fn traced(self) -> i64 {
i64::try_from(self).unwrap_or(i64::MAX)
}
}
)+
};
}
macro_rules! impl_traced_signed {
($($ty:ty),+ $(,)?) => {
$(
impl TracedExt for $ty {
fn traced(self) -> i64 {
i64::try_from(self).unwrap_or(if self < 0 {
i64::MIN
} else {
i64::MAX
})
}
}
)+
};
}
impl_traced!(u8, u16, u32, u64, u128, usize);
impl_traced_signed!(i8, i16, i32, i64, i128, isize);