#pragma once #include #include #include #include #include #include #include #include #include #include typedef struct LString { bool ref; size_t length; uint8_t data[]; } LString; static inline LString *lstring_new(size_t len, uint8_t *data) { LString *lstr = calloc(1, sizeof(*lstr) + len); lstr->length = len; memcpy(lstr->data, data, len); return lstr; } static inline LString *lstring_newz(const char *data) { return lstring_new(strlen(data), (uint8_t*) data); } #define lstring_free free