17#ifndef MMGR_NUMEROS_SCRIBO_H
18#define MMGR_NUMEROS_SCRIBO_H
60#define MMGR_STR {MMGR_FK_STR, 0u, 0u, NULL}
63#define MMGR_U32 {MMGR_FK_U32, 0u, 0u, NULL}
66#define MMGR_U64 {MMGR_FK_U64, 0u, 0u, NULL}
69#define MMGR_I64 {MMGR_FK_I64, 0u, 0u, NULL}
72#define MMGR_CH {MMGR_FK_CH, 0u, 0u, NULL}
75#define MMGR_JSON {MMGR_FK_JSON, 0u, 0u, NULL}
78#define MMGR_XML {MMGR_FK_XML, 0u, 0u, NULL}
85#define MMGR_END {MMGR_FK_END, 0u, 0u, NULL}
114#define MMGR_VSTR(text_) {MMGR_FK_STR, {.text = (text_)}, 0u}
121#define MMGR_VU32(value_) {MMGR_FK_U32, {.u32 = (value_)}, 0u}
128#define MMGR_VU64(value_) {MMGR_FK_U64, {.u64 = (value_)}, 0u}
135#define MMGR_VI64(value_) {MMGR_FK_I64, {.i64 = (value_)}, 0u}
142#define MMGR_VDEC(value_) {MMGR_FK_DEC, {.u32 = (value_)}, 0u}
149#define MMGR_VHEX(value_) {MMGR_FK_HEX, {.u64 = (value_)}, 0u}
156#define MMGR_VOCT(value_) {MMGR_FK_OCT, {.u64 = (value_)}, 0u}
163#define MMGR_VG(value_) {MMGR_FK_G, {.real = (value_)}, 0u}
170#define MMGR_VFIX(value_) {MMGR_FK_FIX, {.real = (value_)}, 0u}
177#define MMGR_VCH(character_) {MMGR_FK_CH, {.character = (character_)}, 0u}
184#define MMGR_VJSON(text_) {MMGR_FK_JSON, {.text = (text_)}, 0u}
191#define MMGR_VXML(text_) {MMGR_FK_XML, {.text = (text_)}, 0u}
200#define MMGR_VDECW(value_, width_) {MMGR_FK_DEC, {.u32 = (value_)}, (width_)}
209#define MMGR_VHEXW(value_, width_) {MMGR_FK_HEX, {.u64 = (value_)}, (width_)}
218#define MMGR_VOCTW(value_, width_) {MMGR_FK_OCT, {.u64 = (value_)}, (width_)}
229#define MMGR_VGW(value_, width_) {MMGR_FK_G, {.real = (value_)}, (width_)}
240#define MMGR_VFIXW(value_, width_) {MMGR_FK_FIX, {.real = (value_)}, (width_)}
size_t mmgr_numer_emit(const NumerosCfg *args)
Writes args->vals into args->out, starting at args->at and reading no field list.
size_t mmgr_numer_emit_append(const NumerosCfg *args)
Writes args->vals into args->out after the string already there, reading no field list.
mmgr_fk
What one field formats, and which mmgr_fval arm it reads.
size_t mmgr_numer_build(const NumerosCfg *args)
Writes args->spec and args->vals into args->out, starting at args->at.
static const NumerosScriboNs numer
Dispatch table instance named numer.
size_t mmgr_numer_append(const NumerosCfg *args)
Writes args->spec and args->vals into args->out after the string already there.
Arguments for the four numer calls.
const mmgr_fval *const vals
const mmgr_field *const spec
Type of the numer dispatch table.
size_t(*) emit_append(const NumerosCfg *args)
size_t(*) append(const NumerosCfg *args)
size_t(*) build(const NumerosCfg *args)
size_t(*) emit(const NumerosCfg *args)
One value, tagged with the kind that selects which arm of as holds it.
Text and number formatting, the limits, and one table per kind of thing written.