pub struct Builder(_);
Expand description
A builder struct for creating a UUID.
Examples
Creating a v4 UUID from externally generated bytes:
use uuid::{Builder, Variant, Version};
let random_bytes = rng();
let uuid = Builder::from_bytes(random_bytes)
.set_variant(Variant::RFC4122)
.set_version(Version::Random)
.build();
Implementations§
source§impl Builder
impl Builder
sourcepub const fn from_bytes(b: Bytes) -> Self
pub const fn from_bytes(b: Bytes) -> Self
Creates a Builder
using the supplied big-endian bytes.
Examples
Basic usage:
let bytes: uuid::Bytes = [
70, 235, 208, 238, 14, 109, 67, 201, 185, 13, 204, 195, 90, 145, 63, 62,
];
let mut builder = uuid::Builder::from_bytes(bytes);
let uuid = builder.build().to_hyphenated().to_string();
let expected_uuid = String::from("46ebd0ee-0e6d-43c9-b90d-ccc35a913f3e");
assert_eq!(expected_uuid, uuid);
An incorrect number of bytes:
ⓘ
let bytes: uuid::Bytes = [4, 54, 67, 12, 43, 2, 98, 76]; // doesn't compile
let uuid = uuid::Builder::from_bytes(bytes);
sourcepub fn from_slice(b: &[u8]) -> Result<Self, Error>
pub fn from_slice(b: &[u8]) -> Result<Self, Error>
Creates a Builder
using the supplied big-endian bytes.
Errors
This function will return an error if b
has any length other than 16.
Examples
Basic usage:
let bytes = [4, 54, 67, 12, 43, 2, 98, 76, 32, 50, 87, 5, 1, 33, 43, 87];
let builder = uuid::Builder::from_slice(&bytes);
let uuid =
builder.map(|mut builder| builder.build().to_hyphenated().to_string());
let expected_uuid =
Ok(String::from("0436430c-2b02-624c-2032-570501212b57"));
assert_eq!(expected_uuid, uuid);
An incorrect number of bytes:
let bytes = [4, 54, 67, 12, 43, 2, 98, 76];
let builder = uuid::Builder::from_slice(&bytes);
assert!(builder.is_err());
sourcepub fn from_fields(d1: u32, d2: u16, d3: u16, d4: &[u8]) -> Result<Self, Error>
pub fn from_fields(d1: u32, d2: u16, d3: u16, d4: &[u8]) -> Result<Self, Error>
Creates a Builder
from four big-endian field values.
Errors
This function will return an error if d4
’s length is not 8 bytes.
Examples
Basic usage:
let d4 = [12, 3, 9, 56, 54, 43, 8, 9];
let builder = uuid::Builder::from_fields(42, 12, 5, &d4);
let uuid =
builder.map(|mut builder| builder.build().to_hyphenated().to_string());
let expected_uuid =
Ok(String::from("0000002a-000c-0005-0c03-0938362b0809"));
assert_eq!(expected_uuid, uuid);
An invalid length:
let d4 = [12];
let builder = uuid::Builder::from_fields(42, 12, 5, &d4);
assert!(builder.is_err());
sourcepub fn set_variant(&mut self, v: Variant) -> &mut Self
pub fn set_variant(&mut self, v: Variant) -> &mut Self
Specifies the variant of the UUID.
sourcepub fn set_version(&mut self, v: Version) -> &mut Self
pub fn set_version(&mut self, v: Version) -> &mut Self
Specifies the version number of the UUID.