Struct ratelimit::Limiter [] [src]

pub struct Limiter { /* fields omitted */ }

Single-threaded rate limiter.

Methods

impl Limiter
[src]

[src]

create a new default ratelimit instance

Example


let mut r = Limiter::new();

[src]

create a new Config for building a custom Limiter

Example


let mut r = Limiter::configure().build();

[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();

[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");
    },
}

[src]

Blocking wait for 1 token.

Example


let mut limiter = Limiter::new();
for i in -10..0 {
    println!("T {}...", i);
    limiter.wait();
}
println!("Ignition!");

[src]

Blocking wait for count tokens.

Example


let mut limiter = Limiter::new();
for i in 1..3 {
    println!("{}...", i);
    limiter.wait_for(i);
}

Trait Implementations

impl Default for Limiter
[src]

[src]

Returns the "default value" for a type. Read more