Trait LimitBackend
pub trait LimitBackend:
Send
+ Sync
+ Debug {
// Required methods
fn define(&self, name: &str, spec: LimitSpec);
fn ticket(&self) -> u64;
fn acquire_in(
&self,
name: &str,
ticket: u64,
priority: &Priority,
now_ms: u64,
waker: Option<&Waker>,
) -> Acquire;
fn release(&self, name: &str, ticket: u64);
fn in_use(&self, name: &str) -> u32;
// Provided methods
fn acquire(
&self,
name: &str,
ticket: u64,
now_ms: u64,
waker: Option<&Waker>,
) -> Acquire { ... }
fn waiting(&self, _name: &str) -> usize { ... }
fn list(&self) -> Vec<(String, LimitSpec)> { ... }
}Expand description
Where limits live.
Required Methods§
fn define(&self, name: &str, spec: LimitSpec)
Provided Methods§
fn acquire(
&self,
name: &str,
ticket: u64,
now_ms: u64,
waker: Option<&Waker>,
) -> Acquire
fn acquire( &self, name: &str, ticket: u64, now_ms: u64, waker: Option<&Waker>, ) -> Acquire
acquire_in at the default priority.