15 lines
1013 B
Markdown
15 lines
1013 B
Markdown
A **linked list** implementation avoiding the use of [`Arc`]s in favor of unsafe manual removal of nodes when the caller knows all possible references are left unused.
|
|
|
|
The point of this crate is to offer [`Pin`] guarantees on the references into the list while allowing it to be modified. The implementation of all this doesn't require mutable access to the linked list itself so as a side effect it's possible to use the list in concurrent manners.
|
|
|
|
This means that it will try as smartly as possible to allow concurrent modifications to it as long as the nodes affected are unrelated.
|
|
|
|
# Types
|
|
|
|
There could be different types of linked list implementations in the future, like safer ones with [`Arc`], single-threaded ones, etc. But right now there's only:
|
|
* [`DoublyLinkedList`]: [`crate::double`] doubly linked list only in the heap with manual unsafe removal of items in it.
|
|
|
|
---
|
|
|
|
`cargo doc` is supported and is the main documentation of the library. But there's no official hosting of the document files.
|