feat(util): add SmartGUID

This commit is contained in:
fallenoak committed 2026-01-11 23:48:16 -06:00
1 parent 9162978b4f
commit 6d8510b4a7
2 files changed
+46

No files matched your search

+29
View File
@@ -0,0 +1,29 @@
#include "util/SmartGUID.hpp"
#include <common/DataStore.hpp>
SmartGUID::operator uint64_t() const {
return this->guid;
}
SmartGUID& SmartGUID::operator=(uint64_t guid) {
this->guid = guid;
return *this;
}
CDataStore& operator>>(CDataStore& msg, SmartGUID& guid) {
guid = 0;
uint8_t mask;
msg.Get(mask);
for (int32_t i = 0; i < 8; i++) {
if (mask & (1 << i)) {
uint8_t byte;
msg.Get(byte);
guid.guid |= static_cast<uint64_t>(byte) << (i * 8);
}
}
return msg;
}
+17
View File
@@ -0,0 +1,17 @@
#ifndef UTIL_SMART_GUID_HPP
#define UTIL_SMART_GUID_HPP
#include <cstdint>
class CDataStore;
struct SmartGUID {
uint64_t guid;
operator uint64_t() const;
SmartGUID& operator=(uint64_t value);
};
CDataStore& operator>>(CDataStore& msg, SmartGUID& guid);
#endif