diff options
Diffstat (limited to 'Private/CFKit')
| -rw-r--r-- | Private/CFKit/GUIDWrapper.hpp | 67 |
1 files changed, 35 insertions, 32 deletions
diff --git a/Private/CFKit/GUIDWrapper.hpp b/Private/CFKit/GUIDWrapper.hpp index f332e119..15e59d1c 100644 --- a/Private/CFKit/GUIDWrapper.hpp +++ b/Private/CFKit/GUIDWrapper.hpp @@ -20,40 +20,43 @@ // eXtensible Resource Information namespace hCore::XRN { - union GUIDSequence +union GUIDSequence { + alignas(8) UShort u8[16]; + alignas(8) UShort u16[8]; + alignas(8) UInt u32[4]; + alignas(8) ULong u64[2]; + + struct { - alignas(8) UShort u8[16]; - alignas(8) UShort u16[8]; - alignas(8) UInt u32[4]; - alignas(8) ULong u64[2]; - - struct - { - alignas(8) UInt m_Ms1; - UShort m_Ms2; - UShort m_Ms3; - UChar m_Ms4[8]; - }; + alignas(8) UInt m_Ms1; + UShort m_Ms2; + UShort m_Ms3; + UChar m_Ms4[8]; }; +}; + +class GUID final +{ + public: + explicit GUID() = default; + ~GUID() = default; + + public: + GUID &operator=(const GUID &) = default; + GUID(const GUID &) = default; - class GUID final + public: + GUIDSequence &operator->() noexcept { - public: - explicit GUID() = default; - ~GUID() = default; - - public: - GUID &operator=(const GUID &) = default; - GUID(const GUID &) = default; - - public: - GUIDSequence &operator->() - { - return m_UUID; - } - - private: - GUIDSequence m_UUID; - - }; + return m_UUID; + } + + GUIDSequence &Leak() noexcept + { + return m_UUID; + } + + private: + GUIDSequence m_UUID; +}; } // namespace hCore::XRN |
