OpenSiv3D  v0.6.5
C++20 framework for creative coding
s3d::UUIDValue Class Reference

#include <UUIDValue.hpp>

Public Types

enum  Variant { Variant::NCS, Variant::RFC, Variant::Microsoft, Variant::Reserved }
 
enum  Version {
  Version::Nil, Version::TimeBased, Version::DCE, Version::NameBasedMD5,
  Version::Random, Version::NameBasedSHA1
}
 
using value_type = uint8
 

Public Member Functions

SIV3D_NODISCARD_CXX20 UUIDValue ()=default
 
SIV3D_NODISCARD_CXX20 UUIDValue (const value_type(&uuid)[16]) noexcept
 
constexpr SIV3D_NODISCARD_CXX20 UUIDValue (const std::array< value_type, 16 > &uuid) noexcept
 
template<class Iterator >
SIV3D_NODISCARD_CXX20 UUIDValue (Iterator first, Iterator last)
 
constexpr bool isNil () const noexcept
 
Variant variant () const noexcept
 
Version version () const noexcept
 
std::string to_string () const
 
String str () const
 
constexpr const std::array< value_type, 16 > & getData () const noexcept
 
void swap (UUIDValue &other)
 
size_t hash () const noexcept
 

Static Public Member Functions

static UUIDValue Generate ()
 
static UUIDValue GenerateFromRNG (DefaultRNG &rng=GetDefaultRNG())
 
static UUIDValue GenerateFromName (const UUIDValue &namespaceUUIDValue, const std::string &name)
 
static UUIDValue GenerateFromName (const UUIDValue &namespaceUUIDValue, const String &name)
 
static UUIDValue Nil ()
 
static UUIDValue NamespaceDNS () noexcept
 
static UUIDValue NamespaceURL () noexcept
 
static UUIDValue NamespaceOID () noexcept
 
static UUIDValue NamespaceX500 () noexcept
 
static bool IsValid (std::string_view uuid)
 
static bool IsValid (StringView uuid)
 
static Optional< UUIDValueParse (std::string_view uuid)
 
static Optional< UUIDValueParse (StringView uuid)
 

Friends

bool operator== (const UUIDValue &lhs, const UUIDValue &rhs) noexcept
 
bool operator!= (const UUIDValue &lhs, const UUIDValue &rhs) noexcept
 
bool operator< (const UUIDValue &lhs, const UUIDValue &rhs) noexcept
 
template<class CharType >
std::basic_ostream< CharType > & operator<< (std::basic_ostream< CharType > &output, const UUIDValue &value)
 
void Formatter (FormatData &formatData, const UUIDValue &value)
 

Member Typedef Documentation

◆ value_type

Member Enumeration Documentation

◆ Variant

Enumerator
NCS 
RFC 
Microsoft 
Reserved 

◆ Version

Enumerator
Nil 
TimeBased 
DCE 
NameBasedMD5 
Random 
NameBasedSHA1 

Constructor & Destructor Documentation

◆ UUIDValue() [1/4]

SIV3D_NODISCARD_CXX20 s3d::UUIDValue::UUIDValue ( )
default

◆ UUIDValue() [2/4]

SIV3D_NODISCARD_CXX20 s3d::UUIDValue::UUIDValue ( const value_type(&)  uuid[16])
explicitnoexcept

◆ UUIDValue() [3/4]

constexpr SIV3D_NODISCARD_CXX20 s3d::UUIDValue::UUIDValue ( const std::array< value_type, 16 > &  uuid)
explicitconstexprnoexcept

◆ UUIDValue() [4/4]

template<class Iterator >
SIV3D_NODISCARD_CXX20 s3d::UUIDValue::UUIDValue ( Iterator  first,
Iterator  last 
)
explicit

Member Function Documentation

◆ Generate()

static UUIDValue s3d::UUIDValue::Generate ( )
static

◆ GenerateFromName() [1/2]

static UUIDValue s3d::UUIDValue::GenerateFromName ( const UUIDValue namespaceUUIDValue,
const std::string &  name 
)
static

◆ GenerateFromName() [2/2]

static UUIDValue s3d::UUIDValue::GenerateFromName ( const UUIDValue namespaceUUIDValue,
const String name 
)
static

◆ GenerateFromRNG()

static UUIDValue s3d::UUIDValue::GenerateFromRNG ( DefaultRNG rng = GetDefaultRNG())
static

◆ getData()

constexpr const std::array<value_type, 16>& s3d::UUIDValue::getData ( ) const
constexprnoexcept

◆ hash()

size_t s3d::UUIDValue::hash ( ) const
noexcept

◆ isNil()

constexpr bool s3d::UUIDValue::isNil ( ) const
constexprnoexcept

◆ IsValid() [1/2]

static bool s3d::UUIDValue::IsValid ( std::string_view  uuid)
static

◆ IsValid() [2/2]

static bool s3d::UUIDValue::IsValid ( StringView  uuid)
static

◆ NamespaceDNS()

static UUIDValue s3d::UUIDValue::NamespaceDNS ( )
staticnoexcept

◆ NamespaceOID()

static UUIDValue s3d::UUIDValue::NamespaceOID ( )
staticnoexcept

◆ NamespaceURL()

static UUIDValue s3d::UUIDValue::NamespaceURL ( )
staticnoexcept

◆ NamespaceX500()

static UUIDValue s3d::UUIDValue::NamespaceX500 ( )
staticnoexcept

◆ Nil()

static UUIDValue s3d::UUIDValue::Nil ( )
static

◆ Parse() [1/2]

static Optional<UUIDValue> s3d::UUIDValue::Parse ( std::string_view  uuid)
static

◆ Parse() [2/2]

static Optional<UUIDValue> s3d::UUIDValue::Parse ( StringView  uuid)
static

◆ str()

String s3d::UUIDValue::str ( ) const

◆ swap()

void s3d::UUIDValue::swap ( UUIDValue other)

◆ to_string()

std::string s3d::UUIDValue::to_string ( ) const

◆ variant()

Variant s3d::UUIDValue::variant ( ) const
noexcept

◆ version()

Version s3d::UUIDValue::version ( ) const
noexcept

Friends And Related Function Documentation

◆ Formatter

void Formatter ( FormatData formatData,
const UUIDValue value 
)
friend

◆ operator!=

bool operator!= ( const UUIDValue lhs,
const UUIDValue rhs 
)
friend

◆ operator<

bool operator< ( const UUIDValue lhs,
const UUIDValue rhs 
)
friend

◆ operator<<

template<class CharType >
std::basic_ostream<CharType>& operator<< ( std::basic_ostream< CharType > &  output,
const UUIDValue value 
)
friend

◆ operator==

bool operator== ( const UUIDValue lhs,
const UUIDValue rhs 
)
friend

The documentation for this class was generated from the following file: