17extern strref _fmtTypeNames[FMT_count];
18extern uint32 _fmtTypeIdMask[FMT_count][2];
19extern bool (*_fmtTypeParseOpt[FMT_count])(
FMTVar* v, strref opt);
20extern bool (*_fmtTypeParseFinalize[FMT_count])(
FMTVar* v);
21extern bool (*_fmtTypeFormat[FMT_count])(
FMTVar* v,
string* out);
23typedef struct FMTContext {
26 int32 startarg[FMT_count];
40bool _fmtExtractVar(_Inout_ FMTContext* ctx);
41bool _fmtParseVar(_Inout_ FMTContext* ctx);
42bool _fmtFindData(_Inout_ FMTContext* ctx);
43void _fmtFormat(_Inout_ FMTContext* ctx);
48int32 _fmtFindKeyed(_In_ FMTContext* ctx, _In_ strref key);
54int _fmtTypeFromKey(_In_ FMTContext* ctx, _In_ strref key,
bool isarray,
bool ishash);
57bool _fmtParseStringOpt(_Inout_
FMTVar* v, _In_ strref opt);
58bool _fmtString(_Inout_
FMTVar* v, _Inout_
string* out);
59bool _fmtParseIntOpt(_Inout_
FMTVar* v, _In_ strref opt);
60bool _fmtParseIntFinalize(_Inout_
FMTVar* v);
61bool _fmtInt(_Inout_
FMTVar* v, _Inout_
string* out);
62bool _fmtParseFloatOpt(_Inout_
FMTVar* v, _In_ strref opt);
63bool _fmtParseFloatFinalize(_Inout_
FMTVar* v);
64bool _fmtFloat(_Inout_
FMTVar* v, _Inout_
string* out);
65bool _fmtParsePtrOpt(_Inout_
FMTVar* v, _In_ strref opt);
66bool _fmtParsePtrFinalize(_Inout_
FMTVar* v);
67bool _fmtParseObjectOpt(_Inout_
FMTVar* v, _In_ strref opt);
68bool _fmtPtr(_Inout_
FMTVar* v, _Inout_
string* out);
69bool _fmtSUID(_Inout_
FMTVar* v, _Inout_
string* out);
70bool _fmtObject(_Inout_
FMTVar* v, _Inout_
string* out);
Generic type-safe containers with runtime type system integration.
#define stvar(typen, val)
Copy-on-write strings with automatic memory management and rope optimization.
Format variable descriptor for Formattable interface implementations.