Struct ratelimit::Limiter
[−]
[src]
pub struct Limiter { /* fields omitted */ }
Single-threaded rate limiter.
Methods
impl Limiter
[src]
fn new() -> Limiter
[src]
fn configure() -> Builder
[src]
fn run(&mut self)
[src]
Run the limiter, intended for multi-threaded use
Example
let mut limiter = Limiter::new(); let mut handle = limiter.make_handle(); thread::spawn(move || { limiter.run(); }); handle.wait();
fn make_handle(&mut self) -> Handle
[src]
Create a Handle for multi-thread use
Example
let mut limiter = Limiter::new(); let mut handle = limiter.make_handle(); match handle.try_wait() { Ok(_) => { println!("not limited"); }, Err(_) => { println!("was limited"); }, }
fn wait(&mut self)
[src]
Blocking wait for 1 token.
Example
let mut limiter = Limiter::new(); for i in -10..0 { println!("T {}...", i); limiter.wait(); } println!("Ignition!");
fn wait_for(&mut self, count: usize)
[src]
Blocking wait for count
tokens.
Example
let mut limiter = Limiter::new(); for i in 1..3 { println!("{}...", i); limiter.wait_for(i); }