#ifndef PRB_STRING_H #define PRB_STRING_H #define str8lit(s) str8((U8 *)(s), sizeof(s)-1) #define str8expand(s) (int)((s).length), ((s).ptr) Str8 str8(U8 *ptr, U64 length); Str8 str8range(U8 *start, U8 *end); Str8 str8fromcstr(char *cstr); char *str8tocstr(Arena *arena, Str8 s); Str8 str8chopend(Str8 s, U64 count); Str8 str8chopstart(Str8 s, U64 count); void str8print(Str8 s); Str8List *str8list(Arena *arena); void str8listpush(Arena *arena, Str8List *list, Str8 str, B32 to_front); void str8listprint(Str8List *list); Str8 str8pushfv(Arena *arena, char *fmt, va_list args); Str8 str8pushf(Arena *arena, char *fmt, ...); void str8listpushf(Arena *arena, Str8List *list, B32 to_front, char *fmt, ...); #endif /* PRB_STRING_H */