6#ifndef ACTIVE_UTILITY_NAME_ID
7#define ACTIVE_UTILITY_NAME_ID
9#include "Active/Utility/Guid.h"
27 using Option = std::optional<NameID>;
68 bool operator== (
const NameID& ref)
const {
return (
id || ref.id) ? (
id == ref.id) : (name == ref.name); }
80 bool operator< (
const NameID& ref)
const {
return ((
id || ref.id) && (
id != ref.id)) ? (
id < ref.id) : (name < ref.name); }
85 operator bool()
const {
return id || !name.empty(); }
105struct std::hash<active::utility::NameID> {
107 std::size_t h1 = std::hash<active::utility::String>{}(nameID.name);
108 std::size_t h2 = std::hash<active::utility::Guid>{}(nameID.id);
109 return h1 ^ (h2 << 1);
std::optional< NameID > Option
Optional.
Definition NameID.h:27
NameID(const Guid &guid, const String &str=String{})
Definition NameID.h:52
NameID(const char *str, const Guid &guid=Guid{})
Definition NameID.h:46
bool operator<(const NameID &ref) const
Definition NameID.h:80
bool operator!=(const NameID &ref) const
Definition NameID.h:74
NameID()
Definition NameID.h:34
NameID(const String &str, const Guid &guid=Guid{})
Definition NameID.h:40
bool operator==(const NameID &ref) const
Definition NameID.h:68
void clear()
Definition NameID.h:95
A Unicode-aware string class.
Definition String.h:51
Definition Base64Transport.h:11