Queue¶
Import: import system.collections;
Queue¶
FIFO queue backed by a ring buffer (T[] + head/count). Invariant: items.length > 0, 0 <= head < items.length, 0 <= count <= items.length, so any (head + k) % items.length with k >= 0 is a valid slot for Buffer.get_unchecked.
constructor¶
Creates an empty queue.
length¶
Number of elements currently stored.
capacity¶
Current element capacity of the ring buffer.
reserve¶
Reserves room for additional elements while preserving FIFO order and length.
enqueue¶
Appends value at the back of the queue.
dequeue¶
Removes and returns the front element, or None when empty. The vacated slot is zeroed so managed elements release immediately instead of staying retained until overwritten.
peek¶
Returns the front element without removing it, or None when empty.
clear¶
Removes every element. Live ring slots are overwritten with a zero value so managed elements release immediately instead of staying retained until later enqueues overwrite them; the ring is reset to front-aligned empty.
clear¶
Unmanaged: no RC to release — rewind only.
iterator¶
Iterates elements from front to back.