impotent/str.h
2025-08-31 16:22:38 +03:00

31 lines
607 B
C

#pragma once
#include<stdbool.h>
#include<stdint.h>
#include<stddef.h>
#include<ctype.h>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<stdatomic.h>
#include<assert.h>
#include<string.h>
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