![]() |
Pixie
|
Move-only, by-value adapter for immer::flex_vector<T>. More...
#include <immer_sequence.h>
Classes | |
| struct | MemoryUsage |
| Requested live tree bytes, excluding heap free lists and RSS. More... | |
Public Member Functions | |
| ImmerPermutableSequence () noexcept=default | |
| Construct canonical empty without heap allocation. | |
| ImmerPermutableSequence (const ImmerPermutableSequence &)=delete | |
| Ownership is exclusive; copying is disabled. | |
| ImmerPermutableSequence & | operator= (const ImmerPermutableSequence &)=delete |
| Ownership is exclusive; copying is disabled. | |
| ImmerPermutableSequence (ImmerPermutableSequence &&other) noexcept | |
| Transfer ownership, leaving other canonical empty. | |
| ImmerPermutableSequence & | operator= (ImmerPermutableSequence &&other) noexcept |
| Transfer ownership; self-move is a no-op, other becomes empty. | |
| MemoryUsage | memory_usage () const noexcept |
| Account for live storage in linear time, without allocations. | |
Public Member Functions inherited from pixie::PermutableSequenceBase< ImmerPermutableSequence< std::uint64_t, immer::default_heap_policy >, std::uint64_t, std::uint64_t > | |
| size_type | size () const noexcept |
| Return the logical element count. | |
| bool | empty () const noexcept |
| Test emptiness. | |
| const_reference | operator[] (size_type position) const |
| Read a checked zero-based element without exposing mutation. | |
| void | insert_at (size_type position, std::uint64_t value) |
| Insert one value at a zero-based position. | |
| void | rotate_left (size_type left, size_type right, size_type distance) |
| Rotate [left,right) left while preserving outside values. | |
| void | merge (ImmerPermutableSequence< std::uint64_t, immer::default_heap_policy > &donor) |
| Append unchanged donor values and consume donor ownership. | |
| size_type | memory_usage_bytes () const noexcept |
| Explicitly account for requested live storage. | |
Static Public Attributes | |
| static constexpr std::size_t | fanout = std::size_t{1} << Vector::bits |
| Maximum number of child pointers per internal node. | |
| static constexpr std::size_t | leaf_capacity |
| Maximum number of values per leaf. | |
Additional Inherited Members | |
Public Types inherited from pixie::PermutableSequenceBase< ImmerPermutableSequence< std::uint64_t, immer::default_heap_policy >, std::uint64_t, std::uint64_t > | |
| using | value_type |
| Stored element type. | |
| using | const_reference |
| Immutable result type. | |
| using | size_type |
| Count and position type. | |
Static Public Member Functions inherited from pixie::PermutableSequenceBase< ImmerPermutableSequence< std::uint64_t, immer::default_heap_policy >, std::uint64_t, std::uint64_t > | |
| static ImmerPermutableSequence< std::uint64_t, immer::default_heap_policy > | from_range (Range &&range) |
| Consume a possibly single-pass input range into an owning sequence. | |
Move-only, by-value adapter for immer::flex_vector<T>.
Implements PermutableSequenceBase, including unchanged-value consuming merge. No snapshots or references escape the adapter. Mutations keep the original roots alive until success to preserve the facade's strong exception guarantees; temporary slices use Immer's consuming operations. Build with PIXIE_THIRD_PARTY_BACKENDS. This is not the stable-reference indirect storage policy and does not implement permutation rebasing.
| T | Copy-constructible value type with at most max_align_t alignment. Reads and persistent updates may copy values. Move-only payloads and stable-reference reads are not supported. |
| HeapPolicy | Immer heap policy; defaults to its standard pooled heap. Changing the heap does not change the reference-counting or value policy. |
|
inlinenoexcept |
Account for live storage in linear time, without allocations.
Uses the pinned Immer node layout and its fixed-capacity reference-counted allocations. Excludes static empty nodes, allocator pools/bookkeeping, RSS and temporary persistent snapshots. Returned owners do not share payload subtrees with other adapter instances.
|
staticconstexpr |
Maximum number of values per leaf.