import { Queue } from "https://deno.land/x/async@v2.1.0/mod.ts";
A queue implementation that allows for adding and removing elements, with optional waiting when popping elements from an empty queue.
import { assertEquals } from "https://deno.land/std@0.211.0/assert/mod.ts";
import { Queue } from "https://deno.land/x/async@v2.1.0/queue.ts";
const queue = new Queue<number>();
queue.push(1);
queue.push(2);
queue.push(3);
assertEquals(await queue.pop(), 1);
assertEquals(await queue.pop(), 2);
assertEquals(await queue.pop(), 3);