src/containers/simple_queue.bend
bend-collections-laws-containers@1.0.0.0 · 22 lines · 0 definitions
1import Base
2import bend-collections-laws-containers@1.0.0.0/src/containers/queue.bend as K
3import bend-collections-laws-containers@1.0.0.0/src/containers/types/queue.bend as E
4
5# Single-threaded queue API; storage and algorithms are shared with queue.
6def new(~T: Data) -> K.Queue<T>:
7 K.new(~T)
8
9def qsize(~T: Data, q: K.Queue<T>) -> K.Queue<T> & Nat:
10 K.length(~T, q)
11
12def put(~T: Data, q: K.Queue<T>, x: T) -> K.Queue<T>:
13 K.enqueue(~T, q, x)
14
15def get(~T: Data, q: K.Queue<T>) -> K.Queue<T> & Result<&2, &2, E.Error, T>:
16 K.dequeue(~T, q)
17
18def peek(~T: Data, q: K.Queue<T>) -> K.Queue<T> & Result<&2, &2, E.Error, T>:
19 K.peek(~T, q)
20
21def to_list(~T: Data, q: K.Queue<T>) -> K.Queue<T> & List<&2, T>:
22 K.to_list(~T, q)