zero4rs 2.0.0

zero4rs is a powerful, pragmatic, and extremely fast web framework for Rust
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use base64::engine::general_purpose::URL_SAFE_NO_PAD;
use base64::Engine;
use rand::{CryptoRng, Error, Fill, RngCore};

pub trait TokenRng: CryptoRng {
    fn generate_token(&mut self) -> Result<String, Error>;
}

impl<Rng: CryptoRng + RngCore> TokenRng for Rng {
    fn generate_token(&mut self) -> Result<String, Error> {
        let mut buf = [0; 32];
        buf.try_fill(self)?;
        Ok(URL_SAFE_NO_PAD.encode(buf))
    }
}