Reservation

Struct Reservation 

Source
pub struct Reservation { /* private fields */ }
Expand description

A reservation for a rate-limited event.

Created by Limiter::reserve(), this represents a reserved slot that must be explicitly committed or will automatically cancel on drop.

§Examples

use tiny_counter::{EventStore, TimeUnit};

let store = EventStore::new();

// Reserve a slot
let reservation = store.limit()
    .at_most("api_call", 10, TimeUnit::Hours)
    .reserve("api_call")
    .unwrap();

// Do some work...
// If successful, commit
reservation.commit();

// If reservation is dropped without commit, it auto-cancels

Implementations§

Source§

impl Reservation

Source

pub fn commit(self)

Commit the reservation, recording the event.

This decrements the pending counter and records the event atomically.

Source

pub fn cancel(self)

Cancel the reservation without recording the event.

This is equivalent to dropping the reservation without committing.

Trait Implementations§

Source§

impl Drop for Reservation

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.