PER Firmware
Loading...
Searching...
No Matches
strbuf.h
Go to the documentation of this file.
1
9#ifndef STRBUF_H
10#define STRBUF_H
11
12#include <stdint.h>
13#include <stddef.h>
14
15typedef struct {
16 uint8_t *data;
17 size_t length;
18 size_t max_len;
19} strbuf_t;
20
21void strbuf_clear(strbuf_t *sb);
22size_t strbuf_append(strbuf_t *sb, const void *data, size_t length);
23size_t strbuf_printf(strbuf_t *sb, const char *format, ...);
24
34#define ALLOCATE_STRBUF(NAME, MAX_SIZE) \
35 uint8_t NAME##_data[(MAX_SIZE)]; \
36 strbuf_t NAME = { \
37 .data = NAME##_data, \
38 .length = 0, \
39 .max_len = (MAX_SIZE), \
40 }
41
42#endif // STRBUF_H
size_t strbuf_append(strbuf_t *sb, const void *data, size_t length)
Appends raw data to the buffer. If the data exceeds the buffer size, no data is appended.
Definition strbuf.c:25
size_t strbuf_printf(strbuf_t *sb, const char *format,...)
Appends formatted data to the buffer using printf-style formatting. !
Definition strbuf.c:41
void strbuf_clear(strbuf_t *sb)
Clears the buffer by resetting length to 0.
Definition strbuf.c:17
Definition strbuf.h:15