This is a basic header files with FrostWing specific short forms and basically a good for life header...
int rb_peek(const ring_buffer_t *rb, void *out)
Peek at the next element without removing it.
int rb_empty(const ring_buffer_t *rb)
Check if buffer is empty.
size_t rb_free(const ring_buffer_t *rb)
Get remaining capacity.
int rb_push(ring_buffer_t *rb, const void *data)
Push an element into the buffer.
int rb_pop(ring_buffer_t *rb, void *out)
Pop an element from the buffer.
int rb_full(const ring_buffer_t *rb)
Check if buffer is full.
size_t rb_size(const ring_buffer_t *rb)
Get number of elements currently stored.
void rb_init(ring_buffer_t *rb, void *buffer, size_t capacity, size_t elem_size)
Initialize a ring buffer.
void rb_clear(ring_buffer_t *rb)
Clear the buffer.
Structure representing a ring buffer.