pub struct ShadowLedger { /* private fields */ }Expand description
Per-(tenant, route) shadow spend for the current UTC day.
Implementations§
Source§impl ShadowLedger
impl ShadowLedger
Sourcepub fn may_spend(
&self,
tenant: &str,
route_ix: usize,
max_usd_per_day: f64,
now: Timestamp,
) -> bool
pub fn may_spend( &self, tenant: &str, route_ix: usize, max_usd_per_day: f64, now: Timestamp, ) -> bool
Whether a shadow evaluation may start, given the day’s ceiling.
Checked before the call rather than after, because the point of a ceiling is to not spend the money — discovering the overrun afterwards defeats it. The trade is that a single evaluation can overshoot by its own cost; with per-call costs in fractions of a cent against a dollar-scale daily cap that is immaterial, and erring toward one extra cheap call is better than erring toward silently skipping measurements.
Trait Implementations§
Source§impl Debug for ShadowLedger
impl Debug for ShadowLedger
Source§impl Default for ShadowLedger
impl Default for ShadowLedger
Source§fn default() -> ShadowLedger
fn default() -> ShadowLedger
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl !Freeze for ShadowLedger
impl RefUnwindSafe for ShadowLedger
impl Send for ShadowLedger
impl Sync for ShadowLedger
impl Unpin for ShadowLedger
impl UnsafeUnpin for ShadowLedger
impl UnwindSafe for ShadowLedger
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreCreates a shared type from an unshared type.