31 lines
570 B
Rust
31 lines
570 B
Rust
|
use crate::rng::get_random_bytes;
|
||
|
|
||
|
use crate::{Uuid, Variant, Version};
|
||
|
|
||
|
impl Uuid {
|
||
|
pub fn new_v4() -> Self {
|
||
|
Uuid::new_random()
|
||
|
}
|
||
|
|
||
|
pub fn new_random() -> Self {
|
||
|
let mut bytes = get_random_bytes();
|
||
|
|
||
|
Uuid::set_variant(&mut bytes, Variant::Default);
|
||
|
Uuid::set_version(&mut bytes, Version::Random);
|
||
|
|
||
|
Uuid(bytes)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#[cfg(test)]
|
||
|
mod tests {
|
||
|
use crate::{Uuid, Variant};
|
||
|
|
||
|
#[test]
|
||
|
fn new_v4__variant() {
|
||
|
let uuid = Uuid::new_v4();
|
||
|
|
||
|
assert_eq!(uuid.get_variant(), Variant::Default);
|
||
|
}
|
||
|
}
|