pub struct UsageBuffer { /* private fields */ }Expand description
Thread-safe in-memory aggregator with bounded idempotency memory.
Implementations§
Source§impl UsageBuffer
impl UsageBuffer
Sourcepub fn new(max_idempotency_keys: usize) -> Self
pub fn new(max_idempotency_keys: usize) -> Self
Construct a buffer retaining at most max_idempotency_keys once-only
keys. Zero disables in-process deduplication.
Sourcepub fn record(&self, event: UsageEvent) -> Result<RecordOutcome, RecordError>
pub fn record(&self, event: UsageEvent) -> Result<RecordOutcome, RecordError>
Record one event into a (customer, meter) aggregate.
§Errors
Returns RecordError::Poisoned if another thread panicked while
mutating the buffer, or RecordError::UnitsOverflow rather than
silently saturating an invoice quantity.
Sourcepub fn pending_buckets(&self) -> usize
pub fn pending_buckets(&self) -> usize
Number of live aggregate buckets plus retry events.
Trait Implementations§
Source§impl Debug for UsageBuffer
impl Debug for UsageBuffer
Auto Trait Implementations§
impl !Freeze for UsageBuffer
impl RefUnwindSafe for UsageBuffer
impl Send for UsageBuffer
impl Sync for UsageBuffer
impl Unpin for UsageBuffer
impl UnsafeUnpin for UsageBuffer
impl UnwindSafe for UsageBuffer
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