Releases: orxfun/orx-linked-list
Releases · orxfun/orx-linked-list
Lifetime elision fixes
List made generic over pinned vectors
List made generic over pinned vectors. This is important as it allows certain data structures which has known size to use a FixedVec
rather than a SplitVec
. This is beneficial especially in small collections.
However, default type is set as the split-vec with recursive growth strategy. Therefore, although the type definition is extend by an additional generic parameter, the changes do not break the api.
Furthermore, pointers
iterators are provided both for singly and doubly lists.
Equality implementations are extended for convenience.
Major Revision (v3)
Following the major revision in the underlying self referential collection, the linked list is revised (see here).
- The crate is converted into no_std.
- Type signatures are simplified by removing the lifetime parameters.
- Iterators are enhanced, ring and links iterators are introduced. Iterator performances are enhanced. Benchmarks are revised and results are reported.
- Extend is implemented.
- Capabilities of node indices are significantly enhanced:
- more constant time access and mutation methods are introduced
- the lists now implement
Index
andIndexMut
- the lists can be
slice
d using the indices
- Memory policies are simplified, it is made easy to transform the list into auto-reclaim or into lazy-reclaim mode.
FromIter
andIntoIter
are implemented.Clone
andDebug
are implemented.- The issues with miri tests are fixed, now all tests pass.
- Tests are extended.
- Benchmarks are extended.
- Examples are provided.
PinnedVec and implementors upgraded (3.3)
2.7.0 Merge pull request #31 from orxfun/PinnedVec-and-implementors-upgrade…
PinnedVec (2.11) and SelfRefCol (1.6) upgrade
2.5.0 Merge pull request #28 from orxfun/PinnedVec-(2.11)-and-SelfRefCol-(1…
orx-pinned-vec version updated to 2.7
Merge pull request #26 from orxfun/orx-pinned-vec-version-updated-to-2.7 orx-pinned-vec version updated to 2.7
Keeping `NodeIndex`es valid
MemoryReclaimPolicy
generic argument is added to the list variantsSingly
andDoubly
. In the prior versions, all lists usedMemoryReclaimOnThredhold
as the memory reclaim policy. This policy is still the default policy. However, the user may prefer to useMemoryReclaimNever
.MemoryReclaimNever
will make sure that the indices will always be valid.node_utilization
andreclaim_closed_nodes
methods are exposed. This gives control to the the user to manually manage memory utilization. Note that these methods are crucial whenMemoryReclaimNever
is used.
Singly/Doubly and `SelfRefCol` migration
List
can represent bothSingly
andDoubly
variants.- List makes uses of
SplitVec
withRecursive
growth strategy which enables zero-cost append. - Time complexities of methods are explicitly documented.
- Performance improvements achieved.
retain
andappend
methods are implemented.- Implementation is significantly simplified by using
SelfRefCol
.