pub struct Uuid { /* private fields */ }Expand description
A Universally Unique Identifier (UUID).
Implementations§
Source§impl Uuid
impl Uuid
Sourcepub fn nil() -> Uuid
pub fn nil() -> Uuid
The ‘nil UUID’.
The nil UUID is special form of UUID that is specified to have all 128 bits set to zero, as defined in IETF RFC 4122 Section 4.1.7.
§Examples
Basic usage:
use uuid::Uuid;
let uuid = Uuid::nil();
assert_eq!(uuid.hyphenated().to_string(),
"00000000-0000-0000-0000-000000000000");Sourcepub fn new(v: UuidVersion) -> Option<Uuid>
pub fn new(v: UuidVersion) -> Option<Uuid>
Creates a new Uuid.
Note that not all versions can be generated currently and None will be
returned if the specified version cannot be generated.
To generate a random UUID (UuidVersion::Random), then the v4
feature must be enabled for this crate.
Sourcepub fn new_v4() -> Uuid
pub fn new_v4() -> Uuid
Creates a random Uuid.
This uses the rand crate’s default task RNG as the source of random numbers.
If you’d like to use a custom generator, don’t use this method: use the
rand::Rand trait’s rand() method instead.
Note that usage of this method requires the v4 feature of this crate
to be enabled.
§Examples
Basic usage:
use uuid::Uuid;
let uuid = Uuid::new_v4();Sourcepub fn from_fields(
d1: u32,
d2: u16,
d3: u16,
d4: &[u8],
) -> Result<Uuid, ParseError>
pub fn from_fields( d1: u32, d2: u16, d3: u16, d4: &[u8], ) -> Result<Uuid, ParseError>
Creates a Uuid from four field values.
§Errors
This function will return an error if d4’s length is not 8 bytes.
§Examples
Basic usage:
use uuid::Uuid;
let d4 = [12, 3, 9, 56, 54, 43, 8, 9];
let uuid = Uuid::from_fields(42, 12, 5, &d4);
let uuid = uuid.map(|uuid| uuid.hyphenated().to_string());
let expected_uuid = Ok(String::from("0000002a-000c-0005-0c03-0938362b0809"));
assert_eq!(expected_uuid, uuid);An invalid length:
use uuid::Uuid;
use uuid::ParseError;
let d4 = [12];
let uuid = Uuid::from_fields(42, 12, 5, &d4);
let expected_uuid = Err(ParseError::InvalidLength(1));
assert_eq!(expected_uuid, uuid);Sourcepub fn from_bytes(b: &[u8]) -> Result<Uuid, ParseError>
pub fn from_bytes(b: &[u8]) -> Result<Uuid, ParseError>
Creates a Uuid using the supplied bytes.
§Errors
This function will return an error if b has any length other than 16.
§Examples
Basic usage:
use uuid::Uuid;
let bytes = [4, 54, 67, 12, 43, 2, 98, 76,
32, 50, 87, 5, 1, 33, 43, 87];
let uuid = Uuid::from_bytes(&bytes);
let uuid = uuid.map(|uuid| uuid.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::Uuid;
use uuid::ParseError;
let bytes = [4, 54, 67, 12, 43, 2, 98, 76];
let uuid = Uuid::from_bytes(&bytes);
let expected_uuid = Err(ParseError::InvalidLength(8));
assert_eq!(expected_uuid, uuid);Sourcepub fn get_variant(&self) -> Option<UuidVariant>
pub fn get_variant(&self) -> Option<UuidVariant>
Returns the variant of the Uuid structure.
This determines the interpretation of the structure of the UUID. Currently only the RFC4122 variant is generated by this module.
Sourcepub fn get_version_num(&self) -> usize
pub fn get_version_num(&self) -> usize
Returns the version number of the Uuid.
This represents the algorithm used to generate the contents.
Currently only the Random (V4) algorithm is supported by this module. There are security and privacy implications for using older versions - see Wikipedia: Universally Unique Identifier for details.
Sourcepub fn get_version(&self) -> Option<UuidVersion>
pub fn get_version(&self) -> Option<UuidVersion>
Returns the version of the Uuid.
This represents the algorithm used to generate the contents
Sourcepub fn as_bytes(&self) -> &[u8; 16]
pub fn as_bytes(&self) -> &[u8; 16]
Return an array of 16 octets containing the UUID data
§Examples
use uuid::Uuid;
let uuid = Uuid::nil();
assert_eq!(uuid.as_bytes(), &[0; 16]);
let uuid = Uuid::parse_str("936DA01F9ABD4d9d80C702AF85C822A8").unwrap();
assert_eq!(uuid.as_bytes(),
&[147, 109, 160, 31, 154, 189, 77, 157,
128, 199, 2, 175, 133, 200, 34, 168]);Sourcepub fn simple(&self) -> Simple<'_>
pub fn simple(&self) -> Simple<'_>
Returns a wrapper which when formatted via fmt::Display will format a
string of 32 hexadecimal digits.
§Examples
use uuid::Uuid;
let uuid = Uuid::nil();
assert_eq!(uuid.simple().to_string(),
"00000000000000000000000000000000");Sourcepub fn hyphenated(&self) -> Hyphenated<'_>
pub fn hyphenated(&self) -> Hyphenated<'_>
Returns a wrapper which when formatted via fmt::Display will format a
string of hexadecimal digits separated into groups with a hyphen.
§Examples
use uuid::Uuid;
let uuid = Uuid::nil();
assert_eq!(uuid.hyphenated().to_string(),
"00000000-0000-0000-0000-000000000000");Sourcepub fn urn(&self) -> Urn<'_>
pub fn urn(&self) -> Urn<'_>
Returns a wrapper which when formatted via fmt::Display will format a
string of the UUID as a full URN string.
§Examples
use uuid::Uuid;
let uuid = Uuid::nil();
assert_eq!(uuid.urn().to_string(),
"urn:uuid:00000000-0000-0000-0000-000000000000");Sourcepub fn to_timestamp(&self) -> Option<(u64, u16)>
pub fn to_timestamp(&self) -> Option<(u64, u16)>
Returns an Optional Tuple of (u64, u16) representing the timestamp and counter portion of a V1 UUID. If the supplied UUID is not V1, this will return None
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Uuid
impl<'de> Deserialize<'de> for Uuid
Source§fn deserialize<D>(
deserializer: D,
) -> Result<Uuid, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<Uuid, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
Source§impl FromSql for Uuid
impl FromSql for Uuid
Source§fn from_sql(_: &Type, raw: &[u8]) -> Result<Uuid, Box<dyn Error + Sync + Send>>
fn from_sql(_: &Type, raw: &[u8]) -> Result<Uuid, Box<dyn Error + Sync + Send>>
Type in its binary format. Read moreSource§fn accepts(ty: &Type) -> bool
fn accepts(ty: &Type) -> bool
Type.Source§impl FromValue for Uuid
try from to owned
impl FromValue for Uuid
try from to owned
fn from_value(v: &Value) -> Result<Uuid, ConvertError>
Source§impl Ord for Uuid
impl Ord for Uuid
Source§impl PartialOrd for Uuid
impl PartialOrd for Uuid
Source§impl Serialize for Uuid
impl Serialize for Uuid
Source§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
Source§impl ToSql for Uuid
impl ToSql for Uuid
Source§fn to_sql(
&self,
_: &Type,
w: &mut Vec<u8>,
) -> Result<IsNull, Box<dyn Error + Sync + Send>>
fn to_sql( &self, _: &Type, w: &mut Vec<u8>, ) -> Result<IsNull, Box<dyn Error + Sync + Send>>
self into the binary format of the specified
Postgres Type, appending it to out. Read more