#include #include #ifndef QUEUE_H #define QUEUE_H typedef struct { uint16_t curr_read_ptr; uint16_t curr_write_ptr; uint16_t element_size; uint16_t length; uint16_t space; uint8_t elements[0]; } queue_t; queue_t* queue_malloc(uint16_t element_size, uint16_t length); void queue_init(queue_t* queue, uint16_t element_size, uint16_t length); bool queue_enqueue(queue_t* queue, void* element); void* queue_dequeue(queue_t* queue); void* queue_peek(queue_t* queue); #endif // QUEUE_H