/** * @file include/str.h */ #pragma once #include "gene.h" #include <stddef.h> #define dropslice ondrop(freeMutSlice) typedef struct { char *s; size_t len; size_t cap; bool owned; } mut_slice_t; /** * @brief Refer to somewhere */ typedef struct { char const *s; size_t len; } slice_t; MAP(DEF_PRIM, mut_slice_t, slice_t) overloadable slice_t slice(mut_slice_t, size_t, size_t); overloadable slice_t slice(slice_t, size_t, size_t); slice_t referEntire(mut_slice_t); slice_t fromString(char const *); mut_slice_t mutFromString(char const *); void freeMutSlice(mut_slice_t const *); mut_slice_t concat(slice_t, slice_t);