#pragma once #include #include typedef struct { char *data; size_t length; size_t capacity; } str; void free_str(str *s); void str_append(str *s, const char *from); void str_append_c(str *s, char c); void str_append_len(str *s, const char *from, size_t len); void str_append_read(str *s, int fd); void str_append_fread(str *s, FILE *file); void str_append_fread_len(str *s, size_t size, FILE *file); void str_appendf(str *s, const char *fmt, ...);