29 template<
typename Fn,
typename... Args>
48 template<
typename T, ice::ContainerLogic Logic>
54 template<
typename T,
typename Fn>
65 template<std::
size_t Count>
107 auto it = headlist.
rbegin();
108 auto const end = headlist.
rend();
116 template<
typename Fn,
typename... Args>
128 ice::forward<Fn>(callback)(
shard, ice::forward<Args>(args)...);
134 template<
typename T, ice::ContainerLogic Logic>
146 payloads.push_back(payload);
173 template<
typename T,
typename Fn>
185 ice::forward<Fn>(callback)(payload);
204 self[idx] = self[
count];
210 template<std::
size_t Count>
SPDX-License-Identifier: MIT.
Definition array.hxx:12
constexpr bool shard_inspect(ice::Shard shard, T &payload) noexcept
Tries to read the value from the given shard.
Definition shard.hxx:307
constexpr auto shardid(ice::Shard shard) noexcept -> ice::ShardID
Returns the ice::ShardID value of a shard.
Definition shard.hxx:163
constexpr auto count(T const (&)[Size]) noexcept -> ice::u32
Definition base.hxx:43
std::uint32_t u32
Definition types.hxx:26
static constexpr ice::Shard Shard_Invalid
Definition shard.hxx:123
constexpr auto shard(ice::ShardID id) noexcept -> ice::Shard
Creates a ice::Shard value from ice::ShardID. Clears the payload ID from the created shard.
Definition shard.hxx:230
static constexpr ice::nindex_invalid_t nindex_none
Definition nindex.hxx:56
A simple container storing items in continuous memory.
Definition array.hxx:24
ice::u32 _count
Definition array.hxx:41
Array(ice::Allocator &alloc) noexcept
Definition array.hxx:97
constexpr auto size() const noexcept -> SizeType
Definition array.hxx:61
Definition shard_container.hxx:12
constexpr auto for_each(ice::ShardID shardid, Fn &&callback, Args &&... args) const noexcept -> ice::ncount
Definition shard_container.hxx:117
constexpr bool inspect_first(ice::ShardID shardid, T &payload) const noexcept
Definition shard_container.hxx:154
constexpr auto inspect_each(ice::ShardID shardid, Fn &&callback) noexcept -> ice::ncount
Definition shard_container.hxx:174
constexpr bool inspect_last(ice::ShardID shard, T &payload) const noexcept
Definition shard_container.hxx:164
constexpr auto count_of(ice::ShardID shardid) const noexcept -> ice::ncount
Definition shard_container.hxx:74
constexpr auto inspect_all(ice::ShardID shardid, ice::Array< T, Logic > &payloads) const noexcept -> ice::ncount
Definition shard_container.hxx:135
constexpr void remove_all_of(this ShardContainer &self, ice::ShardID shardid) noexcept
Definition shard_container.hxx:191
constexpr void push_back(ice::Shard const(&shards_array)[Count]) noexcept
Definition shard_container.hxx:211
constexpr bool contains(ice::ShardID shardid) const noexcept
Definition shard_container.hxx:69
constexpr auto find_first_of(ice::ShardID shardid, ice::nindex offset=ice::nindex_none) const noexcept -> ice::Shard
Definition shard_container.hxx:84
constexpr auto find_last_of(ice::ShardID shardid, ice::nindex offset=ice::nindex_none) const noexcept -> ice::Shard
Definition shard_container.hxx:99
A view into an array of objects laid out in contiguous memory.
Definition span.hxx:17
constexpr auto tailspan(this Self &&self, ice::nindex offset=1) noexcept -> ice::container::SpanType< Self >
Definition contiguous_container.hxx:61
constexpr auto headspan(this Self &&self, ice::ncount count=1) noexcept -> ice::container::SpanType< Self >
Definition contiguous_container.hxx:51
constexpr auto rbegin(this Self &&self) noexcept -> ice::container::ReverseIterator< Self >
Definition contiguous_container.hxx:87
constexpr auto rend(this Self &&self) noexcept -> ice::container::ReverseIterator< Self >
Definition contiguous_container.hxx:93
constexpr auto end(this Self &&self) noexcept -> ice::container::Iterator< Self >
Definition contiguous_container.hxx:81