Files
ld58/code/core/string.h

39 lines
1.0 KiB
C
Raw Normal View History

#if !defined(LD_CORE_STRING_H_)
#define LD_CORE_STRING_H_
#define S(x) Str8_Wrap(sizeof(x) - sizeof(*(x)), (U8 *) (x))
#define Sz(x) Str8_WrapZ((U8 *) (x))
#define Sv(x) (int) (x).count, (x).data
#define Sf(arena, fmt, ...) Str8_Format(arena, fmt, ##__VA_ARGS__)
function Str8 Str8_Wrap(S64 count, U8 *data);
function Str8 Str8_WrapRange(U8 *start, U8 *end);
function Str8 Str8_WrapZ(U8 *data);
function U64 Str8_Hash(Str8 v);
function Str8 Str8_Copy(M_Arena *arena, Str8 s);
function Str8 Str8_Format(M_Arena *arena, const char *format, ...);
function Str8 Str8_FormatArgs(M_Arena *arena, const char *format, va_list args);
typedef U32 Str8_EqualFlags;
enum {
STR8_EQUAL_IGNORE_CASE = (1 << 0)
};
function B32 Str8_Equal(Str8 a, Str8 b, Str8_EqualFlags flags);
function Str8 Str8_Prefix(Str8 s, S64 count);
function Str8 Str8_Suffix(Str8 s, S64 count);
function Str8 Str8_RemoveAfterLast(Str8 s, U8 c);
function B32 Str8_EndsWith(Str8 s, Str8 suffix);
function U8 Chr_ToUppercase(U8 c);
function U8 Chr_ToLowercase(U8 c);
#endif // LD_CORE_STRING_H_