Rust data structures, methods and traits:
BinaryTree<T>CircularBuffer<T>Dequeue<T>Graph<T>HashMap<K, V>HashSet<T>LinkedList<T>LRUCache<T>MerkleTreeMaxHeap<T>MinHeap<T>PriorityQueue<T>Queue<T>SparseVector<T>Stack<T>Vector<T>BufferedChannel<T>UnbufferedChannel<T>OneshotChannel<T>AsyncBufferedChannel<T>
All data structures are implemented from scratch and no data structures from the standard library are used, not even Vec.
The dependency graph between the various data structures is:
┌────────────────────────────────┐
│ Vector │
└┬─┬─┬──────────────────────────┬┘
│ │ │ ┌▽─────────────┐
│ │ │ │CircularBuffer│
│ │ │ └┬──┬──────────┘
│ │ │┌─────────┐ │ │
│ │ ││ Queue │ │ │
│ │ │└△─┬─┬─┬─┬┘ │ │
│ │ │ │ │ │ │┌▽───────────────┐│ │
│ │ │ │ │ │ ││BuffererdChannel││ │
│ │ │ │ │ │ │└────────────────┘│ │
│ │ │ │ │ │┌▽─────────────────┐│ │
│ │ │ │ │ ││UnbuffererdChannel││ │
│ │ │ │ │ │└──────────────────┘│ │
│ │ │ │ │┌▽─────────────┐ │ │
│ │ │ │ ││OneshotChannel│ │ │
│ │ │ │ │└──────────────┘ │ │
│ │ │ │┌▽───────────────────┐ │ │
│ │ │ ││AsyncBufferedChannel│ │ │
│ │ │ │└────────────────────┘ │ │
│ │ │┌┴────────────────────────▽─┐│
│ │ ││ Dequeue ││
│ │ │└───────────────────────────┘│
│ │ │┌────────────────────────────▽─┐
│ │ ││ Stack │
│ │ │└──────────────────────────────┘
│ │┌▽────────────────────────┐
│ ││ HashMap │
│ │└┬────────┬─────┬──┬──┬──△┘
│ │┌▽───────┐│ │ │ │ │
│ ││LRUCache││ │ │ │ │
│ │└△───────┘│ │ │ │ │
│ │ │┌───────▽────┐│ │ │ │
│ │ ││SparseVector││ │ │ │
│ │ │└────────────┘│ │ │ │
│ │ │┌─────────────▽─┐│ │ │
│ │ ││ Graph ││ │ │
│ │ │└───────────────┘│ │ │
│ │ │┌────────────────▽─┐│ │
│ │ ││ HashSet ││ │
│ │ │└──────────────────┘│ │
│ │ │┌───────────────────▽─┐│
│ │ ││ BinaryTree ││
│ │ │└─────────────────────┘│
│ │┌┴───────────────────────┴─┐
│ ││ LinkedList │
│ │└──────────────────────────┘
│┌▽─────────┐
││MerkleTree│
│└──────────┘
┌▽──────────────┐
│ MaxHeap │
└┬─────────────┬┘
┌▽────────────┐│
│PriorityQueue││
└─────────────┘│
┌──────────────▽─┐
│ MinHeap │
└────────────────┘