#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub(in crate::observatory) struct CostInterval {
pub start_ns: u64,
pub end_ns: u64,
}
#[derive(Clone, Copy)]
pub(in crate::observatory) struct CostCounterReading {
pub value: u128,
pub observed_at_ns: u64,
pub window_id: u64,
pub saturated: bool,
}
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub(in crate::observatory) struct SignedCycleAmount {
pub negative: bool,
pub magnitude: u128,
}
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub(in crate::observatory) struct CounterMovement {
pub interval: CostInterval,
pub amount: u128,
}
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub(in crate::observatory) enum CostIntervalIssue {
CounterDecreased,
CounterWindowChanged,
NonAdvancingWindow,
Overflow,
SaturatedCounter,
}