use rand::{Rng, RngCore, rngs::OsRng, distributions::Alphanumeric};
pub trait Random {
fn random() -> Self where Self: Sized;
}
impl Random for [u8; 16] {
fn random() -> Self {
let mut result = [0u8; 16];
let mut rng = OsRng;
rng.fill_bytes(&mut result);
result
}
}
impl Random for [u8; 32] {
fn random() -> Self {
let mut result = [0u8; 32];
let mut rng = OsRng;
rng.fill_bytes(&mut result);
result
}
}
pub fn random_string(length: usize) -> String {
let rng = OsRng;
rng.sample_iter(&Alphanumeric).take(length).collect()
}