20#ifndef LIBREPCB_CORE_UUID_H
21#define LIBREPCB_CORE_UUID_H
57 Q_DECLARE_TR_FUNCTIONS(
Uuid)
78#if defined(__GNUC__) && (__GNUC__ == 13) && (__GNUC_MINOR__ == 2)
123 static bool isValid(
const QString& str)
noexcept;
160 explicit
Uuid(const QString& str) noexcept :
mUuid(str) {}
171 stream << uuid.toStr();
176 stream << QString(
"Uuid(%1)").arg(uuid.toStr());
180inline std::size_t
qHash(
const Uuid& key, std::size_t seed = 0) noexcept {
181 return ::qHash(key.
toStr(), seed);
187inline size_t qHash(
const optional<librepcb::Uuid>& key,
188 size_t seed = 0) noexcept {
189 return ::qHash(key ? key->toStr() : QString(), seed);
The Uuid class is a replacement for QUuid to get UUID strings without {} braces.
Definition uuid.h:56
Uuid & operator=(const Uuid &rhs) noexcept
Operator overloadings.
Definition uuid.h:101
QString mUuid
Guaranteed to always contain a valid UUID.
Definition uuid.h:163
QString toStr() const noexcept
Get the UUID as a string (without braces)
Definition uuid.h:91
Uuid(const Uuid &other) noexcept
Copy constructor.
Definition uuid.h:72
bool operator>(const Uuid &rhs) const noexcept
Definition uuid.h:108
bool operator==(const Uuid &rhs) const noexcept
Definition uuid.h:105
bool operator!=(const Uuid &rhs) const noexcept
Definition uuid.h:106
Uuid()=delete
Default constructor (disabled to avoid creating invalid UUIDs)
~Uuid() noexcept=default
Destructor.
bool operator>=(const Uuid &rhs) const noexcept
Definition uuid.h:110
bool operator<(const Uuid &rhs) const noexcept
Definition uuid.h:107
static std::optional< Uuid > tryFromString(const QString &str) noexcept
Try creating a Uuid from a string, returning empty optional if invalid.
Definition uuid.cpp:124
static Uuid createRandom() noexcept
Create a new random UUID.
Definition uuid.cpp:104
static bool isValid(const QString &str) noexcept
Check if a string is a valid UUID.
Definition uuid.cpp:45
bool operator<=(const Uuid &rhs) const noexcept
Definition uuid.h:109
static Uuid fromString(const QString &str)
Create Uuid from a string.
Definition uuid.cpp:115
Definition occmodel.cpp:77
std::size_t qHash(const AttributeKey &key, std::size_t seed=0) noexcept
Definition attributekey.h:118
QDataStream & operator<<(QDataStream &stream, const AttributeKey &obj)
Definition attributekey.h:108
size_t qHash(const optional< librepcb::Uuid > &key, size_t seed=0) noexcept
Definition uuid.h:187