gardal 0.0.1-alpha.1

A WIP performance-focused token-bucket rate limiting and throttling library
Documentation
1
2
3
4
5
6
7
8
use crate::{RateLimited, Tokens};

pub trait TokenBucket {
    fn consume(&self, to_consume: f64) -> Option<Tokens>;
    fn try_consume(&self, to_consume: f64) -> Result<Tokens, RateLimited>;
    fn saturating_consume(&self, to_consume: f64) -> Option<Tokens>;
    fn add_tokens(&self, tokens: impl Into<f64>);
}