linked_hash_queue 1.0.2
A linked hash queue for D.
To use this package, run the following command in your project's root directory:
Manual usage
Put the following dependency into your project's dependences section:
LinkedHashQueue
A linked hash queue for D.
This is specialized to act as a regular FIFO/FILO queue but disallows duplicates.
This uses optibrev optional return type to make your life easier. :D
How to use:
import std.stdio;
void main() {
LinkedHashQueue!int myCoolQueue;
// FIFO
myCoolQueue.pushBack(1);
myCoolQueue.pushBack(2);
myCoolQueue.pushBack(3);
assert(myCoolQueue.popFront.unwrap == 1);
assert(myCoolQueue.popFront.unwrap == 2);
assert(myCoolQueue.popFront.unwrap == 3);
// LILO
myCoolQueue.pushFront(1);
myCoolQueue.pushFront(2);
myCoolQueue.pushFront(3);
assert(myCoolQueue.popBack.unwrap == 1);
assert(myCoolQueue.popBack.unwrap == 2);
assert(myCoolQueue.popBack.unwrap == 3);
// FILO/Stack
myCoolQueue.pushBack(1);
myCoolQueue.pushBack(2);
myCoolQueue.pushBack(3);
assert(myCoolQueue.popBack.unwrap == 3);
assert(myCoolQueue.popBack.unwrap == 2);
assert(myCoolQueue.popBack.unwrap == 1);
// LIFO/Reverse Stack
myCoolQueue.pushFront(1);
myCoolQueue.pushFront(2);
myCoolQueue.pushFront(3);
assert(myCoolQueue.popFront.unwrap == 3);
assert(myCoolQueue.popFront.unwrap == 2);
assert(myCoolQueue.popFront.unwrap == 1);
// I ran out of ideas for the unit test.
myCoolQueue.pushFront(1);
myCoolQueue.pushFront(2);
myCoolQueue.pushFront(3);
writeln(myCoolQueue.popBack());
writeln(myCoolQueue.popFront());
writeln(myCoolQueue.popBack());
assert(myCoolQueue.popFront().isNone());
}
- Registered by jordan4ibanez
- 1.0.2 released a day ago
- jordan4ibanez/linked_hash_queue
- MIT
- Copyright © 2025, jordan4ibanez
- Authors:
- Dependencies:
- optibrev
- Versions:
-
1.0.2 2025-Feb-20 1.0.1 2025-Feb-20 1.0.0 2025-Feb-20 ~main 2025-Feb-20 - Download Stats:
-
-
0 downloads today
-
5 downloads this week
-
5 downloads this month
-
5 downloads total
-
- Score:
- 0.4
- Short URL:
- linked_hash_queue.dub.pm