Skip to main content

HashedLookupStrategy.ixx File

Hash-based lookup strategy for strong ID collision detection. More...

Included Headers

#include <unordered_set> #include <cstddef> #include <helios.ecs.types.TypeDefs>

Namespaces Index

namespacehelios
namespaceecs
namespacestrategies

Classes Index

classHashedLookupStrategy

Lookup strategy using an unordered set for O(1) amortized lookups. More...

Description

Hash-based lookup strategy for strong ID collision detection.

File Listing

The file content with the documentation metadata removed is:

1
5module;
6
7#include <unordered_set>
8#include <cstddef>
9
10export module helios.ecs.strategies.HashedLookupStrategy;
11
12import helios.ecs.types.TypeDefs;
13
14using namespace helios::ecs::types;
15export namespace helios::ecs::strategies {
16
28
32 std::unordered_set<StrongId_t> strongIds_;
33
34 public:
35
41 explicit HashedLookupStrategy(const size_t capacity) {
42 strongIds_.reserve(capacity);
43 };
44
52 [[nodiscard]] bool add(const StrongId_t id) {
53 return strongIds_.insert(id).second;
54 }
55
63 [[nodiscard]] bool remove(const StrongId_t id) {
64 return strongIds_.erase(id) > 0;
65 }
66
74 [[nodiscard]] bool has(const StrongId_t id) const {
75 return strongIds_.contains(id);
76 }
77
78
79 };
80
81
82}

Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.8.