#ifndef TSL_BUFFER_H #define TSL_BUFFER_H #include /* TODO: Optimize small size buffers by using data and size members (16 bytes on x86) instead of heap allocation */ typedef struct { void *data; size_t size; size_t capacity; } TslBuffer; void tsl_buffer_init(TslBuffer *self); void tsl_buffer_deinit(TslBuffer *self); int tsl_buffer_append(TslBuffer *self, const void *data, size_t size); /* The buffer has to >= @size */ void tsl_buffer_pop(TslBuffer *self, size_t size); void* tsl_buffer_begin(TslBuffer *self); void* tsl_buffer_end(TslBuffer *self); #endif /* TSL_BUFFER_H */