Struct ratelimit::Ratelimit
[−]
[src]
pub struct Ratelimit { // some fields omitted }
Methods
impl Ratelimit
[src]
fn new(capacity: usize, start: u64, interval: u64, quantum: usize) -> Option<Ratelimit>
fn run(&mut self)
run the ratelimiter
Example
let mut r = Ratelimit::new(1, 0, 1, 1).unwrap(); let sender = r.clone_sender(); let _ = sender.try_send(()); r.run(); // invoke in a tight-loop in its own thread
fn clone_sender(&mut self) -> SyncSender<()>
return clone of SyncSender for client use
Example
let mut r = Ratelimit::new(1, 0, 1, 1).unwrap(); let sender = r.clone_sender(); match sender.try_send(()) { Ok(_) => { println!("not limited"); }, Err(_) => { println!("was limited"); }, }