aboutsummaryrefslogtreecommitdiff
path: root/include/std/buffer.h
blob: dea7dbdd7633dc75d97a0ae94468bc65bb7a5cce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#ifndef TSL_BUFFER_H
#define TSL_BUFFER_H

#include <stddef.h>

/*
    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, void *data, size_t size);

#endif /* TSL_BUFFER_H */