Plasma Engine  2.0
Loading...
Searching...
No Matches
Tag.h
1
2#pragma once
3
4#include <Foundation/Strings/HashedString.h>
5
6using plTagSetBlockStorage = plUInt64;
7
15class PL_FOUNDATION_DLL plTag
16{
17public:
18 PL_ALWAYS_INLINE plTag();
19
20 PL_ALWAYS_INLINE bool operator==(const plTag& rhs) const; // [tested]
21
22 PL_ALWAYS_INLINE bool operator!=(const plTag& rhs) const; // [tested]
23
24 PL_ALWAYS_INLINE bool operator<(const plTag& rhs) const;
25
26 PL_ALWAYS_INLINE const plString& GetTagString() const; // [tested]
27
28 PL_ALWAYS_INLINE bool IsValid() const; // [tested]
29
30private:
31 template <typename BlockStorageAllocator>
32 friend class plTagSetTemplate;
33 friend class plTagRegistry;
34
35 plHashedString m_sTagString;
36
37 plUInt32 m_uiBitIndex = 0xFFFFFFFEu;
38 plUInt32 m_uiBlockIndex = 0xFFFFFFFEu;
39};
40
41#include <Foundation/Types/TagSet.h>
42
43#include <Foundation/Types/Implementation/Tag_inl.h>
This class is optimized to take nearly no memory (sizeof(void*)) and to allow very fast checks whethe...
Definition HashedString.h:25
The tag class stores the necessary lookup information for a single tag which can be used in conjuncti...
Definition Tag.h:16
The tag registry for tags in tag sets.
Definition TagRegistry.h:22
A dynamic collection of tags featuring fast lookups.
Definition TagSet.h:23