24 lines
416 B
Rust
24 lines
416 B
Rust
|
use rand::{Rng, OsRng};
|
||
|
|
||
|
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::new().unwrap();
|
||
|
rng.fill_bytes(&mut result);
|
||
|
result
|
||
|
}
|
||
|
}
|
||
|
|
||
|
impl Random for [u8; 32] {
|
||
|
fn random() -> Self {
|
||
|
let mut result = [0u8; 32];
|
||
|
let mut rng = OsRng::new().unwrap();
|
||
|
rng.fill_bytes(&mut result);
|
||
|
result
|
||
|
}
|
||
|
}
|