void * deque_last(const deque_t *self)
The current last element in the queue.
size_t deque_capacity(const deque_t *self)
The maximum number of elements that can be stored.
void * deque_first(const deque_t *self)
The current first element in the queue.
bool deque_is_empty(const deque_t *self)
True if no elements are currently stored.
size_t deque_count(const deque_t *self)
The number of elements currently held in the queue.
bool deque_is_full(const deque_t *self)
True if the queue reached its maximum capacity.
void * deque_get(const deque_t *self, size_t index)
The element of the element at an arbitrary index.
Realtime double-ended queues.
size_t deque_offset(const deque_t *self, size_t count)
The size in memory of count elements.
void * deque_begin(const deque_t *self)
Pointer to the start of the underlying storage.
void * deque_end(const deque_t *self)
Pointer one-past-the-end of the underlying storage.
void * back
Pointer past-the-end of the queue.
void * front
Pointer to the front of the queue.
size_t capacity
Maximum number of elements that can be stored.
size_t count
Number of elements currently stored.