enable foreach for FIFO
This commit is contained in:
parent
24bc2c67bc
commit
6c5acd6f23
@ -44,3 +44,23 @@ fn Type*? Fifo.dequeue(&fifo)
|
|||||||
fifo.out = (fifo.out + 1) % fifo.arr.len;
|
fifo.out = (fifo.out + 1) % fifo.arr.len;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
macro Type Fifo.get(&fifo, usz i) @operator([])
|
||||||
|
{
|
||||||
|
return fifo.arr[(fifo.out + i) % fifo.arr.len];
|
||||||
|
}
|
||||||
|
|
||||||
|
fn void Fifo.set(&fifo, usz i, Type val) @operator([]=)
|
||||||
|
{
|
||||||
|
fifo.arr[(fifo.out + i) % fifo.arr.len] = val;
|
||||||
|
}
|
||||||
|
|
||||||
|
macro Type* Fifo.get_ref(&fifo, usz i) @operator(&[])
|
||||||
|
{
|
||||||
|
return &fifo.arr[(fifo.out + i) % fifo.arr.len];
|
||||||
|
}
|
||||||
|
|
||||||
|
macro usz Fifo.len(&fifo) @operator(len)
|
||||||
|
{
|
||||||
|
return fifo.count;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user