pub struct Builder(/* private fields */);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: [u8; 16]) -> Builder
pub const fn from_bytes(b: [u8; 16]) -> Builder
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<Builder, Error>
pub fn from_slice(b: &[u8]) -> Result<Builder, 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<Builder, Error>
pub fn from_fields( d1: u32, d2: u16, d3: u16, d4: &[u8], ) -> Result<Builder, 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 Builder
pub fn set_variant(&mut self, v: Variant) -> &mut Builder
Specifies the variant of the UUID.
Sourcepub fn set_version(&mut self, v: Version) -> &mut Builder
pub fn set_version(&mut self, v: Version) -> &mut Builder
Specifies the version number of the UUID.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Builder
impl RefUnwindSafe for Builder
impl Send for Builder
impl Sync for Builder
impl Unpin for Builder
impl UnwindSafe for Builder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PropertyValue for Twhere
T: Debug + 'static,
impl<T> PropertyValue for Twhere
T: Debug + 'static,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.