|
CX Framework
Cross-platform C utility framework
|
Variant type containers and type-safe variadic argument support. More...
Go to the source code of this file.
Data Structures | |
| struct | stvp |
| struct | stvlist |
Macros | |
| #define | stvarInit(typen, val) { .data = { .st_##typen = val }, ._type = stType(typen) } |
| #define | stvar(typen, val) ((stvar) { .data = stArg(typen, val), ._type = stType(typen) }) |
| #define | stvNone ((stvar) { ._type = stType(none) }) |
| #define | stvark(key, typen, val) ((stvar) { .data = stArg(typen, val), ._type = stType(typen), ._key = #key }) |
| #define | stvarkn(name, typen, val) ((stvar) { .data = stArg(typen, val), ._type = stType(typen), ._key = (name) }) |
| #define | stvp(typen, pval) ((stvp) { stCheckedPtrArg(typen, pval), NULL }) |
| #define | stvpk(key, typen, pval) ((stvp) { stCheckedPtrArg(typen, pval), #key }) |
| #define | stvpNone ((stvp) { NULL, NULL, NULL }) |
| #define | stvarSet(stv, type, val) _stvarSet(stv, stCheckedArg(type, val)) |
| #define | stvarSetK(stv, key, type, val) _stvarSetK(stv, stCheckedArg(type, val), #key) |
| #define | stvarIs(svar, type) _stvarIs(svar, stType(type)) |
| #define | stvarObj(class, svar) (objDynCast(class, stvarObjInst(svar))) |
| #define | stvlInitSA(list, vararray) _stvlInitSA(list, (vararray).a) |
| #define | stvlNext(list, type, pvar) _stvlNext(list, stCheckedPtrArg(type, pvar)) |
| #define | stvlNextPtr(list) _stvlNextPtr(list, stType(ptr)) |
| #define | stvlNextObj(list, class) objDynCast(class, (ObjInst*)_stvlNextPtr(list, stType(object))) |
| #define | stvlAt(list, idx, type) (_stvlAt((list), (idx), stType(type)).st_##type) |
| #define | stvlAtPtr(list, idx) (_stvlAt((list), (idx), stType(ptr)).st_ptr) |
| #define | stvlAtObj(list, idx, class) objDynCast(class, (ObjInst*)_stvlAt((list), (idx), stType(object)).st_object) |
| #define | stvlFind(list, key, type, pvar) _stvlFind(list, #key, stCheckedPtrArg(type, pvar)) |
| #define | stvlFindPtr(list, key) _stvlFindPtr(list, #key, stType(ptr)) |
| #define | stvlFindObj(list, key, class) objDynCast(class, (ObjInst*)_stvlFindPtr(list, #key, stType(object))) |
| #define | stvlFindVal(list, key, type) (_stvlFindVal(list, #key, stType(type)).st_##type) |
| #define | stvlHasKey(list, key) _stvlHasKey(list, #key) |
Typedefs | |
| typedef struct stvp | stvp |
| typedef struct stvlist | stvlist |
Functions | |
| void | stvarDestroy (stvar *stv) |
| void | stvarCopy (stvar *dvar, stvar svar) |
| string | stvarString (stvar *svar) |
| string * | stvarStringPtr (stvar *svar) |
| ObjInst * | stvarObjInst (stvar *svar) |
| ObjInst ** | stvarObjInstPtr (stvar *svar) |
| void | stvlInit (stvlist *list, int count, stvar *vars) |
| void | stvlRewind (stvlist *list) |
Variant type containers and type-safe variadic argument support.
Definition in file stvar.h.