#include <stdint.h>
#include <stdbool.h>
#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