ring

Ring Buffer (Circular Buffer)

Functions

FunctionDescription
ring_pages_for
ring_newCreate ring buffer with given capacity.
ring_pushPush a value. If full, overwrites oldest and returns evicted value. Returns 0…
ring_popPop oldest value. Returns 0 if empty.
ring_peekPeek at oldest without removing.
ring_peek_newestPeek at newest without removing.
ring_len
ring_cap
ring_full
ring_empty
ring_getGet element at logical index (0 = oldest).
ring_clearClear the ring buffer.
ring_sumSum of all elements.
ring_avgInteger average (0 if empty).

Details

ring_pages_for

fn ring_pages_for(n: i64) -> i64

ring_new

fn ring_new(cap: i64) -> &i64

Create ring buffer with given capacity.

ring_push

fn ring_push(r: &i64, val: i64) -> i64

Push a value. If full, overwrites oldest and returns evicted value. Returns 0 if not full.

ring_pop

fn ring_pop(r: &i64) -> i64

Pop oldest value. Returns 0 if empty.

ring_peek

fn ring_peek(r: &i64) -> i64

Peek at oldest without removing.

ring_peek_newest

fn ring_peek_newest(r: &i64) -> i64

Peek at newest without removing.

ring_len

fn ring_len(r: &i64) -> i64

ring_cap

fn ring_cap(r: &i64) -> i64

ring_full

fn ring_full(r: &i64) -> i64

ring_empty

fn ring_empty(r: &i64) -> i64

ring_get

fn ring_get(r: &i64, idx: i64) -> i64

Get element at logical index (0 = oldest).

ring_clear

fn ring_clear(r: &i64)

Clear the ring buffer.

ring_sum

fn ring_sum(r: &i64) -> i64

Sum of all elements.

ring_avg

fn ring_avg(r: &i64) -> i64

Integer average (0 if empty).