tocket 0.1.1

A trait and simple implemetation of 'Tocken Bucket' algorithm
Documentation
# Tocket
The library provides trait and simple implementations (in memory, redis) to limit requests with the "token bucket" algorithm.

### Example
```rust
use tocket::{RateLimiter, InMemoryTokenBucket};
use std::sync::Arc;
use std::time::Duration;

fn main() {
    let rl = InMemoryTokenBucket::new(100);
    let rl = Arc::new(rl);
    
    let mut handles = Vec::with_capacity(8);
    for _ in 0..8 {
        let h = std::thread::spawn({
            let rl = Arc::clone(&rl);
            move || {
                loop {
                    match rl.try_acquire_one() {
                        Ok(_) => {
                            println!("token acquired, limit not exceeded");
                        }
                        Err(err) => {
                            eprintln!("token acquiring failed: {}", err);
                        }
                    }
                    
                    std::thread::sleep(Duration::from_millis(200));
                }
            }
        });
        
        handles.push(h);
    }
    
    loop {}
}
```

#### License

<sup>
Licensed under either of <a href="LICENSE-APACHE">Apache License, Version
2.0</a> or <a href="LICENSE-MIT">MIT license</a> at your option.
</sup>

<br>

<sub>
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in this crate by you, as defined in the Apache-2.0 license, shall
be dual licensed as above, without any additional terms or conditions.
</sub>