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());
}
Authors:
  • jordan4ibanez
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
Show all 4 versions
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