HandleManyToManyMap.ixx File
Dense association map from one handle to multiple handles. More...
Included Headers
#include <vector>
#include <span>
#include <cassert>
#include <concepts>
#include <iterator>
#include <cstddef>
#include <helios.ecs.types.EntityHandle>
Namespaces Index
| namespace | helios |
| namespace | engine |
| namespace | core |
| namespace | container |
| namespace | ecs |
Classes Index
| class | HandleManyToManyMap<TOneHandle, TManyHandle> |
|
Stores associations from one handle domain to many handles. More... | |
Description
Dense association map from one handle to multiple handles.
File Listing
The file content with the documentation metadata removed is:
19export namespace helios::engine::core::container {
29 class HandleManyToManyMap {
48 requires std::same_as<TOneHandle, typename TOneEntity::Handle_type> && std::same_as<TManyHandle, typename TManyEntity::Handle_type>
49 bool bind(TOneEntity oneEntity, TManyEntity manyEntity) {
50 return bind(oneEntity.handle(), manyEntity.handle());
60 bool bind(const TOneHandle key, const TManyHandle value) {
62 const auto keyIdx = key.entityId;
63 const auto valueIdx = value.entityId;
66 if (values_.size() <= keyIdx) {
67 values_.resize(keyIdx + 1);
69 values_[keyIdx].push_back(value);
81 [[nodiscard]] std::span<const TManyHandle> values(const TOneHandle key) const noexcept {
83 const auto keyIdx = key.entityId;
85 if (values_.size() <= keyIdx) {
89 return values_[keyIdx];
104 void reserve(std::size_t keyCapacity) {
105 values_.reserve(keyCapacity);
Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.8.