[][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 fn from_bytes(b: Bytes) -> Self[src]

Creates a Builder using the supplied big-endian bytes.

Examples

Basic usage:

use uuid::Builder;
use uuid::Bytes;

let bytes: Bytes = [
    70, 235, 208, 238, 14, 109, 67, 201, 185, 13, 204, 195, 90, 145, 63, 62,
];

let mut builder = 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
use uuid::Builder;
use uuid::Bytes;

let bytes: Bytes = [4, 54, 67, 12, 43, 2, 98, 76]; // doesn't compile

let uuid = Builder::from_bytes(bytes);

pub fn from_slice(b: &[u8]) -> Result<Self, BytesError>[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:

use uuid::Builder;

let bytes = [4, 54, 67, 12, 43, 2, 98, 76, 32, 50, 87, 5, 1, 33, 43, 87];

let builder = 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:

use uuid::prelude::*;
use uuid::Builder;

let bytes = [4, 54, 67, 12, 43, 2, 98, 76];

let builder = Builder::from_slice(&bytes);

assert!(builder.is_err());

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

Creates a Builder from four field values.

Errors

This function will return an error if d4's length is not 8 bytes.

Examples

Basic usage:

use uuid::Builder;

let d4 = [12, 3, 9, 56, 54, 43, 8, 9];

let builder = 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:

use uuid::prelude::*;

let d4 = [12];

let builder = uuid::Builder::from_fields(42, 12, 5, &d4);

assert!(builder.is_err());

pub 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 internal Uuid.

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

Specifies the version number of the internal 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 Send for Builder

impl Sync for Builder

Blanket Implementations

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

impl<T> From for T[src]

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

type Error = Infallible

The type returned in the event of a conversion error.

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

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

impl<T, U> TryInto 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<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> SendSyncUnwindSafe for T where
    T: Send + Sync + UnwindSafe + ?Sized
[src]