91 [[nodiscard]]
constexpr auto GetData() const -> uint64_t {
99 [[nodiscard]]
constexpr auto GetTypeName() const -> const
char* {
107 constexpr explicit operator bool()
const {
115 constexpr operator uint64_t()
const {
return value_; }
123 return value_ == other.value_;
132 return value_ != other.value_;
157 static constexpr uint64_t
kTypeMask = 0xFF00000000000000ULL;
158 static constexpr uint64_t
kDataMask = 0x00FFFFFFFFFFFFFFULL;
169 return hash<uint64_t>{}(
static_cast<uint64_t
>(id));
180 return etl::hash<uint64_t>{}(
static_cast<uint64_t
>(id));
ResourceId(ResourceId &&)=default
auto operator=(const ResourceId &) -> ResourceId &=default
static constexpr uint64_t kDataMask
constexpr auto GetTypeName() const -> const char *
获取类型名称(用于调试)
constexpr auto GetType() const -> ResourceType
获取资源类型
constexpr auto operator!=(const ResourceId &other) const -> bool
不等比较操作符
constexpr auto GetData() const -> uint64_t
获取资源数据
static constexpr uint64_t kTypeMask
ResourceId(const ResourceId &)=default
auto operator=(ResourceId &&) -> ResourceId &=default
static constexpr uint8_t kTypeShift
constexpr auto operator==(const ResourceId &other) const -> bool
相等比较操作符
constexpr ResourceId(ResourceType type, uint64_t data)
构造资源 ID
constexpr auto GetResourceTypeName(ResourceType type) -> const char *
获取资源类型的字符串表示(用于调试)
@ kFutex
Futex (快速用户空间互斥锁)
auto operator()(const ResourceId &id) const -> size_t
constexpr auto operator()(const ResourceId &id) const noexcept -> size_t