Files
LEngine_deprecated/LEngine/Guid.h
T
2025-05-13 02:50:08 +03:00

44 lines
903 B
C++

#ifndef Guid_h__
#define Guid_h__
#include <array>
#include <cstdint>
struct Guid {
union {
std::array<uint8_t, 16> data;
std::array<uint32_t, 4> datai;
};
Guid() :datai{ 0,0,0,0 } {
}
Guid(uint32_t i0, uint32_t i1, uint32_t i2, uint32_t i3) : datai{ i0,i1,i2,i3 } {
}
Guid(const std::array<uint32_t, 4>& data_i) : datai(data_i) {
}
Guid(const std::array<uint8_t, 16>& data) : data(data) {
}
Guid(const Guid& guid) : data(guid.data) {
}
Guid& operator =(const Guid& right) {
data = right.data;
return *this;
}
bool operator ==(const Guid& right) const {
return std::equal(data.begin(), data.end(), right.data.begin());
}
bool operator !=(const Guid& right) const {
return !std::equal(data.begin(), data.end(), right.data.begin());
}
bool IsZero() const {
return (datai[0] == 0) && (datai[1] == 0) && (datai[2] == 0) && (datai[3] == 0);
}
};
#endif // Guid_h__