Spracherkennung für: .rs vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]
use crate::{Builder, Uuid};
impl Uuid {
/// Creates a custom UUID comprised almost entirely of user-supplied bytes.
///
/// This will inject the UUID Version at
4 bits starting at the
48th bit
/// and the Variant into
2 bits
64th bit. Any existing bits in the user-supplied bytes
/// at those locations will be overridden.
///
/// Note that usage of this method requires the `v8` feature of this crate
/// to be enabled.
///
/// # Examples
///
/// Basic usage:
///
/// ```
/// # use uuid::{Uuid, Version};
/// let buf: [u8;
16] = *b"abcdefghijklmnop";
/// let uuid = Uuid::new_v8(buf);
///
/// assert_eq!(Some(Version::Custom), uuid.get_version());
/// ```
///
/// # References
///
/// * [Version
8 UUIDs in Draft RFC: New UUID Formats, Version
4](
https://datatracker.ietf.org/doc/html/draft-peabody-dispatch-new-uuid-format-04#section-
5.
3)
pub fn new_v8(buf: [u8;
16]) -> Uuid {
Builder::from_custom_bytes(buf).into_uuid()
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::{Variant, Version};
use std::string::ToString;
#[cfg(target_arch = "wasm32")]
use wasm_bindgen_test::*;
#[test]
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)]
fn test_new() {
let buf: [u8;
16] = [
0xf,
0xe,
0xd,
0xc,
0xb,
0xa,
0x9,
0x8,
0x7,
0x6,
0x5,
0x4,
0x3,
0x2,
0x1,
0x0,
];
let uuid = Uuid::new_v8(buf);
assert_eq!(uuid.get_version(), Some(Version::Custom));
assert_eq!(uuid.get_variant(), Variant::RFC4122);
assert_eq!(uuid.get_version_num(),
8);
assert_eq!(
uuid.hyphenated().to_string(),
"
0f0e0d0c-
0b0a-
8908-
8706-
050403020100"
);
}
}