10typedef struct str_ref {
29typedef struct str_ref* _Nullable
string;
39typedef const struct str_ref* _Nullable
strref;
61#define strInit(o) *(o) = NULL
156_When_(s == NULL, _Post_equal_to_(0)) _Pure uint32
strLen(_In_opt_ strref s);
189_When_(s == NULL, _Post_equal_to_(true)) _Pure
bool strEmpty(_In_opt_ strref s);
229_Ret_valid_ const
char* _Nonnull
strC(_In_opt_ strref s);
300uint32
strCopyOut(_In_opt_ strref s, uint32 off, _Out_writes_bytes_(bufsz) uint8* _Nonnull buf,
322uint32
strCopyRaw(_In_opt_ strref s, uint32 off, _Out_writes_bytes_(maxlen) uint8* _Nonnull buf,
325_Pure uint32 _strStackAllocSize(uint32 maxlen);
326void _strInitStack(_Inout_ _Deref_pre_valid_ _Deref_post_opt_valid_
strhandle ps, uint32 maxlen);
356#define strTemp(ps, maxlen) \
357 (*(ps)) = (string)stackAlloc(_strStackAllocSize(maxlen)); \
358 _strInitStack(ps, maxlen);
392#define _S (string)"\xE0\xC1"
397#define _SU (string)"\xA0\xC1"
402#define _SO (string)"\x80\xC1"
void strSetLen(strhandle ps, uint32 len)
string * strhandle
Pointer to a string variable.
void strReset(strhandle o, uint32 sizehint)
struct str_ref * string
Opaque handle to a string object.
const char * strC(strref s)
void strDestroy(strhandle ps)
uint32 strCopyOut(strref s, uint32 off, uint8 *buf, uint32 bufsz)
const struct str_ref * strref
Borrowed reference to a string.
uint8 * strBuffer(strhandle ps, uint32 minsz)
void strDup(strhandle o, strref s)
void strClear(strhandle ps)
const char * strPC(strhandle ps)
uint32 strCopyRaw(strref s, uint32 off, uint8 *buf, uint32 maxlen)
void strCopy(strhandle o, strref s)