queue

Generated by tinox doc

tinox.core.queue, bundled with the compiler and also available as a standalone tinox-central package.

Circular buffer

import tinox.core.queue
class Main
{
    fnc main() -> Int32
    {
        const buf: CircularBuffer<Int64> = CircularBuffer<Int64>::new(3)
        CircularBuffer::push(buf, 1)
        println("empty? " + CircularBuffer::isEmpty(buf).toString())
        println("popped: " + CircularBuffer::pop(buf).toString())
        return 0
    }
}

Priority queue

import tinox.core.queue
class Main
{
    fnc main() -> Int32
    {
        const pq: PriorityQueue<String> = PriorityQueue<String>::new()
        PriorityQueue::enqueue(pq, "urgent", 1)
        println("next: " + PriorityQueue::peek(pq))
        return 0
    }
}

class CircularBuffer<T>

Fields

dataList<T>
sizeInt64
headInt64
tailInt64
countInt64

Methods

fn new(size: Int64) → CircularBuffer<T>
fn push(buf: CircularBuffer<T>, item: T) → Bool
fn pop(buf: CircularBuffer<T>) → T
fn isFull(buf: CircularBuffer<T>) → Bool
fn isEmpty(buf: CircularBuffer<T>) → Bool

class PriorityItem<T>

Fields

itemT
priorityInt64

class PriorityQueue<T>

Fields

itemsList<PriorityItem<T>>

Methods

fn new() → PriorityQueue<T>
fn enqueue(q: PriorityQueue<T>, item: T, priority: Int64) → Nothing
fn dequeue(q: PriorityQueue<T>) → T
fn peek(q: PriorityQueue<T>) → T
fn sort(q: PriorityQueue<T>) → Nothing
fn isEmpty(q: PriorityQueue<T>) → Bool
fn size(q: PriorityQueue<T>) → Int64