[][src]Struct uuid::builder::Builder

pub struct Builder(_);

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();

Methods

impl Builder[src]

pub const fn from_bytes(b: Bytes) -> Self[src]

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:

This example deliberately fails to compile
let bytes: uuid::Bytes = [4, 54, 67, 12, 43, 2, 98, 76]; // doesn't compile

let uuid = uuid::Builder::from_bytes(bytes);

pub fn from_slice(b: &[u8]) -> Result<Self, Error>[src]

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());

pub fn from_fields(d1: u32, d2: u16, d3: u16, d4: &[u8]) -> Result<Self, Error>[src]

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());

pub fn from_u128(v: u128) -> Self[src]

Creates a Builder from a big-endian 128bit value.

pub const fn nil() -> Self[src]

Creates a Builder with an initial Uuid::nil.

Examples

Basic usage:

use uuid::Builder;

let mut builder = Builder::nil();

assert_eq!(
    builder.build().to_hyphenated().to_string(),
    "00000000-0000-0000-0000-000000000000"
);

pub fn set_variant(&mut self, v: Variant) -> &mut Self[src]

Specifies the variant of the UUID.

pub fn set_version(&mut self, v: Version) -> &mut Self[src]

Specifies the version number of the UUID.

pub fn build(&mut self) -> Uuid[src]

Hands over the internal constructed Uuid.

Examples

Basic usage:

use uuid::Builder;

let uuid = Builder::nil().build();

assert_eq!(
    uuid.to_hyphenated().to_string(),
    "00000000-0000-0000-0000-000000000000"
);

Trait Implementations

impl Debug for Builder[src]

Auto Trait Implementations

impl RefUnwindSafe for Builder

impl Send for Builder

impl Sync for Builder

impl Unpin for Builder

impl UnwindSafe for Builder

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T[src]

type Output = T

Should always be Self

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 
[src]