~/bend-docscommunity

src/containers/queue.bend checks

raw source on the hub · import 0x9ee2e9a299991dcc089fe22c7f3ceb5f/src/containers/queue.bend as Queue

2 imports
import Base
import ./types/queue.bend as E

Types

type Queue source · line 7 · raw

@-T:Data -> Type

Two-list FIFO queue: front ++ reverse(back). Reverse back only when front is empty. Enqueue/dequeue/peek are amortized O(1) on consumed histories. length is cached; to_list is O(n). Independent of the deque and DLL.

Templates

template new source · line 10 · raw

@-T:Data -> Queue<T>

template length source · line 13 · raw

@-T:Data -> @q:Queue<T> -> Pair(Queue<T>, Nat)

template enqueue source · line 17 · raw

@-T:Data -> @q:Queue<T> -> @x:T -> Queue<T>

template ready source · line 21 · raw

@-T:Data -> @q:Queue<T> -> Queue<T>

template dequeue_ready source · line 28 · raw

@-T:Data -> @q:Queue<T> -> Pair(Queue<T>, Result<&2, &2, 0x9ee2e9a299991dcc089fe22c7f3ceb5f/src/containers/types/queue.Error, T>)

template peek_ready source · line 35 · raw

@-T:Data -> @q:Queue<T> -> Pair(Queue<T>, Result<&2, &2, 0x9ee2e9a299991dcc089fe22c7f3ceb5f/src/containers/types/queue.Error, T>)

template dequeue source · line 42 · raw

@-T:Data -> @q:Queue<T> -> Pair(Queue<T>, Result<&2, &2, 0x9ee2e9a299991dcc089fe22c7f3ceb5f/src/containers/types/queue.Error, T>)

template peek source · line 45 · raw

@-T:Data -> @q:Queue<T> -> Pair(Queue<T>, Result<&2, &2, 0x9ee2e9a299991dcc089fe22c7f3ceb5f/src/containers/types/queue.Error, T>)

template to_list source · line 48 · raw

@-T:Data -> @q:Queue<T> -> Pair(Queue<T>, List<&2, T>)

template obs_nat source · line 54 · raw

@-T:Data -> @r:Pair(Queue<T>, Nat) -> Pair(Queue<T>, 0x9ee2e9a299991dcc089fe22c7f3ceb5f/src/containers/types/queue.Obs<T>)

template obs_item source · line 58 · raw

@-T:Data -> @r:Pair(Queue<T>, Result<&2, &2, 0x9ee2e9a299991dcc089fe22c7f3ceb5f/src/containers/types/queue.Error, T>) -> Pair(Queue<T>, 0x9ee2e9a299991dcc089fe22c7f3ceb5f/src/containers/types/queue.Obs<T>)

template obs_list source · line 62 · raw

@-T:Data -> @r:Pair(Queue<T>, List<&2, T>) -> Pair(Queue<T>, 0x9ee2e9a299991dcc089fe22c7f3ceb5f/src/containers/types/queue.Obs<T>)

template step source · line 66 · raw

@-T:Data -> @q:Queue<T> -> @op:0x9ee2e9a299991dcc089fe22c7f3ceb5f/src/containers/types/queue.Op<T> -> Pair(Queue<T>, 0x9ee2e9a299991dcc089fe22c7f3ceb5f/src/containers/types/queue.Obs<T>)

template record source · line 79 · raw

@-T:Data -> @acc:List<&2, 0x9ee2e9a299991dcc089fe22c7f3ceb5f/src/containers/types/queue.Obs<T>> -> @r:Pair(Queue<T>, 0x9ee2e9a299991dcc089fe22c7f3ceb5f/src/containers/types/queue.Obs<T>) -> Pair(Queue<T>, List<&2, 0x9ee2e9a299991dcc089fe22c7f3ceb5f/src/containers/types/queue.Obs<T>>)

template step_acc source · line 83 · raw

@-T:Data -> @op:0x9ee2e9a299991dcc089fe22c7f3ceb5f/src/containers/types/queue.Op<T> -> @st:Pair(Queue<T>, List<&2, 0x9ee2e9a299991dcc089fe22c7f3ceb5f/src/containers/types/queue.Obs<T>>) -> Pair(Queue<T>, List<&2, 0x9ee2e9a299991dcc089fe22c7f3ceb5f/src/containers/types/queue.Obs<T>>)

template run_acc source · line 87 · raw

@-T:Data -> @ops:List<&2, 0x9ee2e9a299991dcc089fe22c7f3ceb5f/src/containers/types/queue.Op<T>> -> @st:Pair(Queue<T>, List<&2, 0x9ee2e9a299991dcc089fe22c7f3ceb5f/src/containers/types/queue.Obs<T>>) -> Pair(Queue<T>, List<&2, 0x9ee2e9a299991dcc089fe22c7f3ceb5f/src/containers/types/queue.Obs<T>>)

template finish source · line 94 · raw

@-T:Data -> @st:Pair(Queue<T>, List<&2, 0x9ee2e9a299991dcc089fe22c7f3ceb5f/src/containers/types/queue.Obs<T>>) -> Pair(Queue<T>, List<&2, 0x9ee2e9a299991dcc089fe22c7f3ceb5f/src/containers/types/queue.Obs<T>>)

template run source · line 98 · raw

@-T:Data -> @ops:List<&2, 0x9ee2e9a299991dcc089fe22c7f3ceb5f/src/containers/types/queue.Op<T>> -> @q:Queue<T> -> Pair(Queue<T>, List<&2, 0x9ee2e9a299991dcc089fe22c7f3ceb5f/src/containers/types/queue.Obs<T>>)