23 #include "../libsheepyObject.h" 26 #include "../../release/libsheepy.h" 28 #define internal static 637 self->type =
"smallDict";
645 self->f = smallDictF;
648 self->iterIndex = -1;
649 self->iterKey = NULL;
650 self->iterElement = NULL;
651 self->iterElementDataType = 0;
976 #if (recycleContainers) 993 #if (recycleContainers) 1063 return(strdup(
"{}"));
1087 dup->iterElementDataType =
self->iterElementDataType;
1088 dup->iterIndex =
self->iterIndex;
1089 if (dup->iterIndex != -1) {
1090 dup->iterKey = (&((dup->d)->elements) + dup->iterIndex)->key;
1092 if (dup->iterIndex != -1) {
1093 dup->iterElement =
toBaset((&((dup->d)->elements) + dup->iterIndex)->data);
1101 return(strdup(
"{}"));
1126 (*self)->f->dispose(*
self);
1130 #if (NFreeStackCheck) 1135 register u64 rsp
asm(
"rsp");
1136 if ((
u64)*
self > rsp) {
1137 logW(
"Probably trying to free a smallDict on stack: "BLD PRIx64
RST" sp: "BLD PRIx64
RST, *
self, rsp);
1141 #if (recycleContainers) 1157 #if (recycleContainers) 1176 if (self->iterIndex != -1) {
1180 self->iterKey = NULL;
1181 self->iterElement = NULL;
1182 self->iterIndex = -1;
1210 mirror->d =
self->d;
1212 mirror->iterElementDataType =
self->iterElementDataType;
1213 mirror->iterIndex =
self->iterIndex;
1214 if (mirror->iterIndex != -1) {
1215 mirror->iterKey = (&((mirror->d)->elements) + mirror->iterIndex)->key;
1217 if (mirror->iterIndex != -1) {
1218 mirror->iterElement =
toBaset((&((mirror->d)->elements) + mirror->iterIndex)->data);
1295 if (!key || !
string) {
1316 if (!key || !dict) {
1334 if (!key || !array) {
1353 if (!key || !array) {
1379 if (!key || !array) {
1405 if (!key || !value) {
1409 if (checkObjectTypes && value && !
isOSmallBool(value)) {
1413 if (!value->
value) {
1422 if (!key || !value) {
1439 if (!key || !value) {
1447 if (!value->
value) {
1456 if (!key || !value) {
1460 if (checkObjectTypes && value && !
isOSmallInt(value)) {
1464 if (!value->
value) {
1473 if (!key || !value) {
1477 if (checkObjectTypes && value && !
isOSmallJson(value)) {
1494 if (!key || !
string) {
1502 if (!string->
data) {
1512 if (!key || !container) {
1520 if (!container->
data) {
1850 if (!key || !dict) {
1868 if (!key || !array) {
1886 if (!key || !json) {
1905 if (!key || !
string) {
1913 if (!string->
data) {
1922 if (!key || !dict) {
1941 if (!key || !array) {
1960 if (!key || !json) {
1980 if (!key || !
string) {
1988 if (!string->
data) {
2048 if (!key || !self->d) {
2057 if (!key || !self->d) {
2151 r = (int32_t)e->
f->get(e);
2163 r = (int32_t *)e->
f->getP(e);
2175 r = (uint64_t)e->
f->get(e);
2187 r = (uint64_t *)e->
f->getP(e);
2199 r = (uint32_t)e->
f->get(e);
2211 r = (uint32_t *)e->
f->getP(e);
2231 if (!key || !self->d) {
2249 if (!key || !self->d) {
2267 if (!key || !self->d) {
2285 if (!key || !self->d) {
2303 if (!key || !self->d) {
2321 if (!key || !self->d) {
2339 if (!key || !self->d) {
2365 if (!key || !self->d) {
2395 if (!key || !self->d) {
2568 if (!key || !self->d) {
2587 if (!key || !self->d) {
2645 r = (int32_t)e->
f->get(e);
2657 r = (uint64_t)e->
f->get(e);
2669 r = (uint32_t)e->
f->get(e);
2689 if (!key || !self->d) {
2707 if (!key || !self->d) {
2725 if (!key || !self->d) {
2743 if (!key || !self->d) {
2761 if (!key || !self->d) {
2779 if (!key || !self->d) {
2797 if (!key || !self->d) {
2822 if (!key || !self->d) {
2852 if (!key || !self->d) {
2992 if (!key || !self->d) {
3021 if (!key || !self->d) {
3027 if (e->key &&
strEq(key, e->key)) {
3058 if (!key || !self->d) {
3065 if (e->key &&
strEq(key, e->key)) {
3084 if (!key || !self->d) {
3091 if (e->key &&
strEq(key, e->key)) {
3107 bool r = o->
f->get(o);
3118 if (!key || !self->d) {
3125 if (e->key &&
strEq(key, e->key)) {
3141 double r = o->
f->get(o);
3152 if (!key || !self->d) {
3159 if (e->key &&
strEq(key, e->key)) {
3175 int64_t
r = o->
f->get(o);
3186 if (!key || !self->d) {
3193 if (e->key &&
strEq(key, e->key)) {
3209 int32_t
r = (int32_t)o->
f->get(o);
3220 if (!key || !self->d) {
3227 if (e->key &&
strEq(key, e->key)) {
3243 uint64_t
r = (uint64_t)o->
f->get(o);
3254 if (!key || !self->d) {
3261 if (e->key &&
strEq(key, e->key)) {
3277 uint32_t
r = (uint32_t)o->
f->get(o);
3288 if (!key || !self->d) {
3295 if (e->key &&
strEq(key, e->key)) {
3311 char *
r =
dupS(o->
f->get(o));
3322 if (!key || !self->d) {
3329 if (e->key &&
strEq(key, e->key)) {
3350 if (!key || !self->d) {
3357 if (e->key &&
strEq(key, e->key)) {
3378 if (!key || !self->d) {
3385 if (e->key &&
strEq(key, e->key)) {
3406 if (!key || !self->d) {
3413 if (e->key &&
strEq(key, e->key)) {
3434 if (!key || !self->d) {
3441 if (e->key &&
strEq(key, e->key)) {
3462 if (!key || !self->d) {
3469 if (e->key &&
strEq(key, e->key)) {
3490 if (!key || !self->d) {
3496 if (e->key &&
strEq(key, e->key)) {
3522 if (!key || !self->d) {
3529 if (e->key &&
strEq(key, e->key)) {
3550 if (!key || !self->d) {
3557 if (e->key &&
strEq(key, e->key)) {
3573 void *
r = o->
f->get(o);
3584 if (!key || !self->d) {
3591 if (e->key &&
strEq(key, e->key)) {
3612 if (key && self->d) {
3628 if (key && self->d) {
3630 if (e->key &&
eqS(key, e->key)) {
3711 if (e->key && e->data->type ==
UNDEFINED) {
3727 if (e->key && e->data->type ==
BOOL && ((
sBoolt*)(e->data))->value == value) {
3743 if (e->key && e->data->type ==
DOUBLE && ((
sDoublet*)(e->data))->value == value) {
3759 if (e->key && e->data->type ==
INT && ((
sIntt*)(e->data))->value == value) {
3803 if (e->key && e->data->type ==
DICT) {
3833 if (e->key && e->data->type ==
ARRAY) {
3859 if (e->key && e->data->type ==
ARRAY) {
3885 if (e->key && e->data->type ==
ARRAY) {
3911 bool b = value->
f->get(value);
3914 if (e->key && e->data->type ==
BOOL && ((
sBoolt*)(e->data))->value == b) {
3934 uint32_t count = value->
B->
count;
3937 if (e->key && e->data->type ==
BYTES && ((
sBytest*)e->data)->count == count && !memcmp(&(((
sBytest*)e->data)->data), b, count)) {
3956 double v = value->
f->get(value);
3959 if (e->key && e->data->type ==
DOUBLE && ((
sDoublet*)(e->data))->value == v) {
3978 int64_t v = value->
f->get(value);
3981 if (e->key && e->data->type ==
INT && ((
sIntt*)(e->data))->value == v) {
4008 if (
eqS(type,
"undefined")) {
4013 else if (
eqS(type,
"bool")) {
4018 else if (
eqS(type,
"double")) {
4023 else if (
eqS(type,
"int")) {
4028 else if (
eqS(type,
"string")) {
4033 else if (
eqS(type,
"dict")) {
4038 else if (
eqS(type,
"array")) {
4053 if (!
string || !string->
data) {
4148 if (e->key && e->data->type ==
DICT) {
4178 if (e->key && e->data->type ==
ARRAY) {
4204 if (e->key && e->data->type ==
ARRAY) {
4230 if (e->key && e->data->type ==
ARRAY) {
4264 if (
eqS(type,
"undefined")) {
4269 else if (
eqS(type,
"bool")) {
4274 else if (
eqS(type,
"double")) {
4279 else if (
eqS(type,
"int")) {
4284 else if (
eqS(type,
"string")) {
4289 else if (
eqS(type,
"dict")) {
4294 else if (
eqS(type,
"array")) {
4309 if (!
string || !string->
data) {
4410 if (!smallDict->
f->len(smallDict)) {
4435 if (!
eqS(type,
"dict")) {
4439 if (!json->
f->len(json)) {
4483 if (!smallDict->
f->len(smallDict)) {
4515 if (!
isOType(p2,
"smallDict")) {
4534 if (!
eqS(type,
"dict")) {
4538 return(p2->
f->equalSmallDict(p2,
self));
4543 if (!self->d || !p2) {
4564 bool foundK =
false;
4567 if (
strEq(e->key, E->key)) {
4594 if (!
isOType(p2,
"smallDict")) {
4613 if (!
eqS(type,
"dict")) {
4617 return(p2->
f->icEqualSmallDict(p2,
self));
4622 if (!self->d || !p2) {
4643 bool foundK =
false;
4646 if (
eqS(e->key, E->key)) {
4671 if (!self->d || !self->d->count) {
4719 if (!funcElem(closure, e->key, E)) {
4737 self->iterIndex = -1;
4745 if ((&((self->d)->elements) +
i)->key) {
4746 self->iterIndex = (ssize_t)
i;
4753 self->iterKey = (&((
self->d)->elements) +
self->iterIndex)->key;
4754 smallt *
o = (&((
self->d)->elements) +
self->iterIndex)->
data;
4761 self->iterElement =
toBaset(o);
4762 return(self->iterElement);
4768 self->iterIndex = -1;
4776 if ((&((self->d)->elements) +
i)->key) {
4777 self->iterIndex = (ssize_t)
i;
4784 self->iterKey = (&((
self->d)->elements) +
self->iterIndex)->key;
4785 smallt *
o = (&((
self->d)->elements) +
self->iterIndex)->
data;
4792 self->iterElement =
toBaset(o);
4793 return(self->iterKey);
4798 if (self->iterIndex == -1) {
4808 rangeFrom(
i, (
size_t)self->iterIndex, self->d->count) {
4809 if ((&((self->d)->elements) +
i)->key) {
4810 self->iterIndex = (ssize_t)
i;
4813 if (!(&((self->d)->elements) +
i)->key && (
i == (
self->d->count -1))) {
4815 self->iterIndex =
self->d->count;
4818 if ((self->iterIndex >= self->d->count)) {
4820 self->iterIndex = -1;
4823 self->iterKey = (&((
self->d)->elements) +
self->iterIndex)->key;
4824 smallt *
o = (&((
self->d)->elements) +
self->iterIndex)->
data;
4831 self->iterElement =
toBaset(o);
4832 return(self->iterElement);
4837 if (self->iterIndex == -1) {
4847 rangeFrom(
i, (
size_t)self->iterIndex, self->d->count) {
4848 if ((&((self->d)->elements) +
i)->key) {
4849 self->iterIndex = (ssize_t)
i;
4852 if (!(&((self->d)->elements) +
i)->key && (
i == (
self->d->count -1))) {
4854 self->iterIndex =
self->d->count;
4857 if ((self->iterIndex >= self->d->count)) {
4859 self->iterIndex = -1;
4862 self->iterKey = (&((
self->d)->elements) +
self->iterIndex)->key;
4863 smallt *
o = (&((
self->d)->elements) +
self->iterIndex)->
data;
4870 self->iterElement =
toBaset(o);
4871 return(self->iterKey);
4876 return(self->iterElement);
4881 return(self->iterKey);
4888 if (!keys || !values) {
4896 if (!keys->
f->len(keys) || !values->
f->len(values)) {
4900 len =
MIN(keys->
f->len(keys), values->
f->len(values));
4926 if (!keys || !values) {
4940 if (!
eqS(type,
"array")) {
4954 if (!keys || !values) {
4968 if (!
eqS(type,
"array")) {
4982 if (!keys || !values) {
4996 if (!
eqS(type,
"array")) {
5002 if (!
eqS(type,
"array")) {
5021 if (!keys || !values) {
5031 if (!
eqS(type,
"array")) {
5045 if (!keys || !values) {
5055 if (!
eqS(type,
"array")) {
5071 if (!keys || !values) {
5106 if (!keys || !values) {
5139 if (!keys || !values) {
5149 if (!
eqS(type,
"array")) {
5163 if (!keys || !values) {
5173 if (!
eqS(type,
"array")) {
5189 if (!keys || !values) {
5225 if (!keys || !values) {
5261 if (!keys || !values) {
5297 if (!keys || !values) {
5333 if (!keys || !values) {
5378 if (!keys || !values) {
5430 if (!
isOType(E,
"smallArray")) {
5438 if (!
isOType(s,
"smallString")) {
5470 a->
f->pushS(
a, e->key);
5472 r->f->pushNFreeArray(
r,
a);
5480 if (!filePath ||
isBlankS(filePath)) {
5501 if (!
eqS(type,
"string")) {
5534 if (!filePath ||
isBlankS(filePath)) {
5565 printf(
"%s: %s", e->key, s);
5588 return(SMALL_TYPE_NAMES[(
size_t)o->
type]);
5648 if ((
size_t)e->data->type >=
ARRAY_SIZE(SMALL_TYPE_NAMES)) {
5667 if (!self->d or !type) {
5680 return(
eqS(SMALL_TYPE_NAMES[(
size_t)o->
type], type));
5699 return(
eqS(SMALL_TYPE_NAMES[(
size_t)o->
type],
"undefined"));
5718 return(
eqS(SMALL_TYPE_NAMES[(
size_t)o->
type],
"bool"));
5737 return(
eqS(SMALL_TYPE_NAMES[(
size_t)o->
type],
"container"));
5756 return(
eqS(SMALL_TYPE_NAMES[(
size_t)o->
type],
"dict"));
5775 return(
eqS(SMALL_TYPE_NAMES[(
size_t)o->
type],
"double"));
5794 return(
eqS(SMALL_TYPE_NAMES[(
size_t)o->
type],
"int"));
5813 return(
eqS(SMALL_TYPE_NAMES[(
size_t)o->
type],
"string"));
5832 return(
eqS(SMALL_TYPE_NAMES[(
size_t)o->
type],
"faststring"));
5851 return(
eqS(SMALL_TYPE_NAMES[(
size_t)o->
type],
"array"));
5870 return(
eqS(SMALL_TYPE_NAMES[(
size_t)o->
type],
"bytes"));
5875 if (!self->d or !type) {
5898 if (!
eqS(SMALL_TYPE_NAMES[(
size_t)o->
type], type)) {
5976 return(self->f->duplicate(
self));
5983 return(self->f->set(
self, key, value));
5989 return(self->f->get(
self,key));
5994 return(self->f->getUndefined(
self,key));
5999 return(self->f->getBool(
self,key));
6004 return(self->f->getBoolP(
self,key));
6009 return(self->f->getDouble(
self,key));
6014 return(self->f->getDoubleP(
self,key));
6019 return(self->f->getInt(
self,key));
6024 return(self->f->getIntP(
self,key));
6029 return(self->f->getInt32(
self,key));
6034 return(self->f->getInt32P(
self,key));
6039 return(self->f->getUint(
self,key));
6044 return(self->f->getUintP(
self,key));
6049 return(self->f->getUint32(
self,key));
6054 return(self->f->getUint32P(
self,key));
6059 return(self->f->getS(
self,key));
6064 return(self->f->getDict(
self,key));
6069 return(self->f->getArray(
self,key));
6074 return(self->f->getSmallBool(
self,key));
6079 return(self->f->getSmallBytes(
self,key));
6084 return(self->f->getSmallDouble(
self,key));
6089 return(self->f->getSmallInt(
self,key));
6094 return(self->f->getSmallJson(
self,key));
6099 return(self->f->getSmallString(
self,key));
6104 return(self->f->getVoid(
self,key));
6109 return(self->f->getSmallContainer(
self,key));
6114 return(self->f->getKChar(
self, key));
6119 return(self->f->getUndefinedKChar(
self, key));
6124 return(self->f->getBoolKChar(
self, key));
6129 return(self->f->getBoolPKChar(
self, key));
6134 return(self->f->getDoubleKChar(
self, key));
6139 return(self->f->getDoublePKChar(
self, key));
6144 return(self->f->getIntKChar(
self, key));
6149 return(self->f->getIntPKChar(
self, key));
6154 return(self->f->getInt32KChar(
self, key));
6159 return(self->f->getInt32PKChar(
self, key));
6164 return(self->f->getUintKChar(
self, key));
6169 return(self->f->getUintPKChar(
self, key));
6174 return(self->f->getUint32KChar(
self, key));
6179 return(self->f->getUint32PKChar(
self, key));
6184 return(self->f->getSKChar(
self, key));
6189 return(self->f->getDictKChar(
self, key));
6194 return(self->f->getArrayKChar(
self, key));
6199 return(self->f->getSmallBoolKChar(
self, key));
6204 return(self->f->getSmallBytesKChar(
self, key));
6209 return(self->f->getSmallDoubleKChar(
self, key));
6214 return(self->f->getSmallIntKChar(
self, key));
6219 return(self->f->getSmallJsonKChar(
self, key));
6224 return(self->f->getSmallStringKChar(
self, key));
6229 return(self->f->getVoidKChar(
self, key));
6234 return(self->f->getSmallContainerKChar(
self, key));
6240 return(self->f->getNDup(
self,key));
6245 return(self->f->getNDupUndefined(
self,key));
6250 return(self->f->getNDupBool(
self,key));
6255 return(self->f->getNDupDouble(
self,key));
6260 return(self->f->getNDupInt(
self,key));
6265 return(self->f->getNDupInt32(
self,key));
6270 return(self->f->getNDupUint(
self,key));
6275 return(self->f->getNDupUint32(
self,key));
6280 return(self->f->getNDupS(
self,key));
6285 return(self->f->getNDupDict(
self,key));
6290 return(self->f->getNDupArray(
self,key));
6295 return(self->f->getNDupSmallBool(
self,key));
6300 return(self->f->getNDupSmallBytes(
self,key));
6305 return(self->f->getNDupSmallDouble(
self,key));
6310 return(self->f->getNDupSmallInt(
self,key));
6315 return(self->f->getNDupSmallJson(
self,key));
6320 return(self->f->getNDupSmallString(
self,key));
6325 return(self->f->getNDupVoid(
self,key));
6330 return(self->f->getNDupSmallContainer(
self,key));
6335 return(self->f->getNDupKChar(
self, key));
6340 return(self->f->getNDupUndefinedKChar(
self, key));
6345 return(self->f->getNDupBoolKChar(
self, key));
6350 return(self->f->getNDupDoubleKChar(
self, key));
6355 return(self->f->getNDupIntKChar(
self, key));
6360 return(self->f->getNDupInt32KChar(
self, key));
6365 return(self->f->getNDupUintKChar(
self, key));
6370 return(self->f->getNDupUint32KChar(
self, key));
6375 return(self->f->getNDupSKChar(
self, key));
6380 return(self->f->getNDupDictKChar(
self, key));
6385 return(self->f->getNDupArrayKChar(
self, key));
6390 return(self->f->getNDupSmallBoolKChar(
self, key));
6395 return(self->f->getNDupSmallBytesKChar(
self, key));
6400 return(self->f->getNDupSmallDoubleKChar(
self, key));
6405 return(self->f->getNDupSmallIntKChar(
self, key));
6410 return(self->f->getNDupSmallJsonKChar(
self, key));
6415 return(self->f->getNDupSmallStringKChar(
self, key));
6420 return(self->f->getNDupVoidKChar(
self, key));
6425 return(self->f->getNDupSmallContainerKChar(
self, key));
6431 return(self->f->setUndefined(
self,key));
6436 return(self->f->setBool(
self,key,value));
6441 return(self->f->setDouble(
self,key,value));
6446 return(self->f->setInt(
self,key,value));
6451 return(self->f->setS(
self,key,
string));
6456 return(self->f->setChar(
self,key,c));
6461 return(self->f->setDict(
self,key,dict));
6466 return(self->f->setArray(
self,key,array));
6471 return(self->f->setArrayc(
self,key,array));
6476 return(self->f->setCArrayc(
self,key,array));
6487 r =
self->
f->setNFreeSmallContainer(
self, key, c);;
6490 r =
self->
f->setUndefined(
self,key);;
6496 return(self->f->setSmallBool(
self,key,value));
6501 return(self->f->setSmallBytes(
self,key,value));
6506 return(self->f->setSmallDouble(
self,key,value));
6511 return(self->f->setSmallInt(
self,key,value));
6516 return(self->f->setSmallJson(
self,key,value));
6521 return(self->f->setSmallString(
self,key,
string));
6526 return(self->f->setSmallContainer(
self,key,container));
6531 return(self->f->setKChar(
self, key, value));
6536 return(self->f->setUndefinedKChar(
self, key));
6541 return(self->f->setBoolKChar(
self, key, value));
6546 return(self->f->setDoubleKChar(
self, key, value));
6551 return(self->f->setIntKChar(
self, key, value));
6556 return(self->f->setSKChar(
self, key,
string));
6561 return(self->f->setCharKChar(
self, key, c));
6566 return(self->f->setDictKChar(
self, key, dict));
6571 return(self->f->setArrayKChar(
self, key, array));
6576 return(self->f->setArraycKChar(
self, key, array));
6581 return(self->f->setCArraycKChar(
self, key, array));
6592 return(self->f->setSmallBoolKChar(
self, key, value));
6597 return(self->f->setSmallBytesKChar(
self, key, value));
6602 return(self->f->setSmallDoubleKChar(
self, key, value));
6607 return(self->f->setSmallIntKChar(
self, key, value));
6612 return(self->f->setSmallJsonKChar(
self, key, value));
6617 return(self->f->setSmallStringKChar(
self, key,
string));
6622 return(self->f->setSmallContainerKChar(
self, key, container));
6627 return(self->f->setNFree(
self,key,value));
6632 return(self->f->setNFreeUndefined(
self,key,value));
6637 return(self->f->setNFreeS(
self,key,
string));
6642 return(self->f->setNFreeDict(
self,key,dict));
6647 return(self->f->setNFreeArray(
self,key,array));
6652 return(self->f->setNFreeArrayc(
self,key,array));
6657 return(self->f->setNFreeSmallBool(
self,key,value));
6662 return(self->f->setNFreeSmallBytes(
self,key,value));
6667 return(self->f->setNFreeSmallDouble(
self,key,value));
6672 return(self->f->setNFreeSmallInt(
self,key,value));
6677 return(self->f->setNFreeSmallJson(
self,key,value));
6682 return(self->f->setNFreeSmallString(
self,key,
string));
6687 return(self->f->setNFreeSmallContainer(
self,key,container));
6692 return(self->f->setNFreeKChar(
self, key, value));
6697 return(self->f->setNFreeUndefinedKChar(
self, key, u));
6702 return(self->f->setNFreeSKChar(
self, key,
string));
6707 return(self->f->setNFreeDictKChar(
self, key, dict));
6712 return(self->f->setNFreeArrayKChar(
self, key, array));
6717 return(self->f->setNFreeArraycKChar(
self, key, array));
6722 return(self->f->setNFreeSmallBoolKChar(
self, key, value));
6727 return(self->f->setNFreeSmallBytesKChar(
self, key, value));
6732 return(self->f->setNFreeSmallDoubleKChar(
self, key, value));
6737 return(self->f->setNFreeSmallIntKChar(
self, key, value));
6742 return(self->f->setNFreeSmallJsonKChar(
self, key, value));
6747 return(self->f->setNFreeSmallStringKChar(
self, key,
string));
6752 return(self->f->setNFreeSmallContainerKChar(
self, key, container));
6758 return(self->f->setPDict(
self,key,dict));
6763 return(self->f->setPArray(
self,key,array));
6768 return(self->f->setPSmallJson(
self,key,json));
6773 return(self->f->setPSmallString(
self,key,
string));
6778 return(self->f->setNFreePDict(
self,key,dict));
6783 return(self->f->setNFreePArray(
self,key,array));
6788 return(self->f->setNFreePSmallJson(
self,key,json));
6793 return(self->f->setNFreePSmallString(
self,key,
string));
6798 return(self->f->setPArrayKChar(
self, key, array));
6803 return(self->f->setPDictKChar(
self, key, dict));
6808 return(self->f->setPSmallJsonKChar(
self, key, json));
6813 return(self->f->setPSmallStringKChar(
self, key,
string));
6818 return(self->f->setNFreePArrayKChar(
self, key, array));
6823 return(self->f->setNFreePDictKChar(
self, key, dict));
6828 return(self->f->setNFreePSmallJsonKChar(
self, key, json));
6833 return(self->f->setNFreePSmallStringKChar(
self, key,
string));
6839 return(self->f->merge(
self,smallDict));
6844 return(self->f->mergeSmallJson(
self,json));
6849 return(self->f->mergeNSmash(
self,smallDict));
6854 return(self->f->mergeNSmashSmallJson(
self,json));
6859 return(self->f->equalBase(
self, p2));
6864 return(self->f->equalSmallJson(
self, p2));
6869 return(self->f->equal(
self, p2));
6874 return(self->f->icEqualBase(
self, p2));
6879 return(self->f->icEqualSmallJson(
self, p2));
6884 return(self->f->icEqual(
self, p2));
6889 return(self->f->getNum(
self, key));
6894 return(self->f->cropElem(
self, key));
6899 return(self->f->cropElemUndefined(
self, key));
6904 return(self->f->cropElemBool(
self, key));
6909 return(self->f->cropElemDouble(
self, key));
6914 return(self->f->cropElemInt(
self, key));
6919 return(self->f->cropElemInt32(
self, key));
6924 return(self->f->cropElemUint(
self, key));
6929 return(self->f->cropElemUint32(
self, key));
6934 return(self->f->cropElemS(
self, key));
6939 return(self->f->cropElemDict(
self, key));
6944 return(self->f->cropElemArray(
self, key));
6949 return(self->f->cropElemSmallBool(
self, key));
6954 return(self->f->cropElemSmallBytes(
self, key));
6959 return(self->f->cropElemSmallDouble(
self, key));
6964 return(self->f->cropElemSmallInt(
self, key));
6969 return(self->f->cropElemSmallJson(
self, key));
6974 return(self->f->cropElemSmallString(
self, key));
6979 return(self->f->cropElemVoid(
self, key));
6984 return(self->f->cropElemSmallContainer(
self, key));
6989 return(self->f->del(
self,key));
6994 return(self->f->delKChar(
self, key));
6999 return(self->f->del(
self,key));
7004 return(self->f->delKChar(
self, key));
7009 return(self->f->remove(
self,key));
7014 return(self->f->removeKChar(
self, key));
7019 return(self->f->remove(
self,key));
7024 return(self->f->removeKChar(
self, key));
7029 return(self->f->has(
self, key));
7034 return(self->f->hasKChar(
self, key));
7039 return(self->f->keyBy(
self,value));
7044 return(self->f->keyByUndefined(
self,u));
7049 return(self->f->keyByBool(
self,value));
7054 return(self->f->keyByDouble(
self,value));
7059 return(self->f->keyByInt(
self,value));
7064 return(self->f->keyByS(
self,
string));
7069 return(self->f->keyByChar(
self,c));
7074 return(self->f->keyByDict(
self,dict));
7079 return(self->f->keyByArray(
self,array));
7084 return(self->f->keyByArrayc(
self,array));
7089 return(self->f->keyByCArrayc(
self,array));
7094 return(self->f->keyBySmallBool(
self,value));
7099 return(self->f->keyBySmallBytes(
self,value));
7104 return(self->f->keyBySmallDouble(
self,value));
7109 return(self->f->keyBySmallInt(
self,value));
7114 return(self->f->keyBySmallJson(
self,
string));
7119 return(self->f->keyBySmallString(
self,
string));
7124 return(self->f->keyBySmallContainer(
self,container));
7129 return(self->f->icKeyBy(
self,value));
7134 return(self->f->icKeyByS(
self,
string));
7139 return(self->f->icKeyByChar(
self,c));
7144 return(self->f->icKeyByDict(
self,dict));
7149 return(self->f->icKeyByArray(
self,array));
7154 return(self->f->icKeyByArrayc(
self,array));
7159 return(self->f->icKeyByCArrayc(
self,array));
7164 return(self->f->icKeyBySmallJson(
self,
string));
7169 return(self->f->icKeyBySmallString(
self,
string));
7174 return(self->f->trim(
self));
7179 return(self->f->keysSmallString(
self));
7184 return(self->f->len(
self));
7189 return(self->f->empty(
self));
7194 return(self->f->isEmpty(
self));
7199 return(self->f->zip(
self,keys,values));
7204 return(self->f->zipSmallJson(
self,keys,values));
7209 return(self->f->zipSmallJsonSmallArray(
self,keys,values));
7214 return(self->f->zipSmallJsonSmallJson(
self,keys,values));
7219 return(self->f->zipSmallJsonVArray(
self,keys,values));
7224 return(self->f->zipSmallJsonVCArray(
self,keys,values));
7229 return(self->f->zipArray(
self,keys,values));
7234 return(self->f->zipArraySmallJson(
self,keys,values));
7239 return(self->f->zipCArray(
self,keys,values));
7244 return(self->f->zipCArraySmallJson(
self,keys,values));
7249 return(self->f->zipArrayArray(
self,keys,values));
7254 return(self->f->zipCArrayArray(
self,keys,values));
7259 return(self->f->zipArrayCArray(
self,keys,values));
7264 return(self->f->zipCArrayCArray(
self,keys,values));
7269 return(self->f->zipVArray(
self,keys,values));
7274 return(self->f->zipVCArray(
self,keys,values));
7279 return(self->f->fromArray(
self, items));
7284 return(self->f->toArray(
self));
7289 return(self->f->writeFile(
self, filePath));
7294 return(self->f->writeFileSmallJson(
self, filePath));
7299 return(self->f->writeFileSmallString(
self, filePath));
7304 return(self->f->writeStream(
self, fp));
7309 return(self->f->appendFile(
self, filePath));
7314 return(self->f->appendFileSmallString(
self, filePath));
7324 return(self->f->typeSmallString(
self,key));
7329 return(self->f->typeStringKChar(
self, key));
7334 return(self->f->typeSmallStringKChar(
self, key));
char * sEscapeTiny(smallt *obj)
stringify a small object
#define forEachCS(list, element)
forEach for const char** lists
internal uint32_t cropElemUint32SmallDict(smallDictt *self, const char *key)
internal bool areAllEArraySmallDict(smallDictt *self)
internal smallBytest * getSmallBytesSmallDict(smallDictt *self, const char *key)
char * icKeyByArraycSmallDictG(smallDictt *self, char **array)
void listFreeS(char **list)
list Free String
internal void freeSmallDict(smallDictt *self)
char * keyBySmallDictG(smallDictt *self, baset *value)
internal smallArrayt * getNDupArrayKCharSmallDict(smallDictt *self, char key)
internal smallIntt * getSmallIntSmallDict(smallDictt *self, const char *key)
internal smallDoublet * getSmallDoubleSmallDict(smallDictt *self, const char *key)
internal void finishSmallDict(smallDictt **self)
internal smallDictt * getNDupDictKCharSmallDict(smallDictt *self, char key)
int64_t getIntSmallDictG(smallDictt *self, int64_t retType UNUSED, const char *key)
internal smallDictt * setSmallBytesKCharSmallDict(smallDictt *self, char key, smallBytest *value)
smallDictt * setUndefinedSmallDictG(smallDictt *self, const char *key, void *value UNUSED)
internal bool isEmptySmallDict(smallDictt *self)
void cleanUpSmallDictFinishG(smallDictt **val)
internal bool appendFileSmallStringSmallDict(smallDictt *self, smallStringt *filePath)
#define O(obj, method)
O calls an object method without parameters O(obj,toString) calls the toString method in the obj obje...
char * getSSmallDictG(smallDictt *self, char *retType UNUSED, const char *key)
void sDictSetP(sDictt **dict, const char *key, smallt *data)
dictionary set pointer
internal smallDictt * setNFreePSmallJsonSmallDict(smallDictt *self, const char *key, smallJsont *json)
bool eqS(const char *string1, const char *string2)
string Equal compare string1 to string2
internal bool areAllEStringSmallDict(smallDictt *self)
internal bool isEFaststringSmallDict(smallDictt *self, const char *key)
smallt * sDictGet(sDictt *dict, const char *key)
get object stored at key
bool isBlankS(const char *string)
is Blank String
internal smallDictt * getNDupDictSmallDict(smallDictt *self, const char *key)
char * icKeyByCharSmallDictG(smallDictt *self, char c)
internal smallDictt * setDoubleKCharSmallDict(smallDictt *self, char key, double value)
int32_t getInt32KCharSmallDictG(smallDictt *self, int32_t retType UNUSED, char key)
internal bool writeFileSmallDict(smallDictt *self, const char *filePath)
bool hasSmallDictG(smallDictt *self, const char *key)
internal char * toStringSmallDict(smallDictt *self)
char * icKeyBySmallJsonSmallDictG(smallDictt *self, smallJsont *string)
char * icKeyByDictSmallDictG(smallDictt *self, smallDictt *dict)
internal smallDictt * setCharSmallDict(smallDictt *self, const char *key, char c)
internal smallDictt * delKCharSmallDict(smallDictt *self, char key)
internal char * icKeyBySSmallDict(smallDictt *self, const char *string)
smallDictt * setNFreeSmallIntSmallDictG(smallDictt *self, const char *key, smallIntt *value)
internal int64_t getNDupIntSmallDict(smallDictt *self, const char *key)
internal bool isEDictSmallDict(smallDictt *self, const char *key)
char * sToString(smallt *obj)
stringify object
internal smallDictt * zipArrayArraySmallDict(smallDictt *self, char **keys, char **values)
int64_t cropElemIntSmallDictG(smallDictt *self, const char *key)
bool appendFileSmallDictG(smallDictt *self, const char *filePath)
internal smallDictt * setNFreeSmallDoubleSmallDict(smallDictt *self, const char *key, smallDoublet *value)
void * getVoidSmallDictG(smallDictt *self, void *retType UNUSED, const char *key)
internal smallDictt * setDictKCharSmallDict(smallDictt *self, char key, smallDictt *dict)
internal smallContainert * getSmallContainerKCharSmallDict(smallDictt *self, char key)
smallDictt * setSSmallDictG(smallDictt *self, const char *key, const char *string)
internal smallDictt * setNFreePSmallStringKCharSmallDict(smallDictt *self, char key, smallStringt *string)
smallDictt * setNFreeSmallBoolKCharSmallDictG(smallDictt *self, char key, smallBoolt *value)
internal bool areAllEDoubleSmallDict(smallDictt *self)
internal char typeSmallDict(smallDictt *self, const char *key)
smallDictt * cropElemDictSmallDictG(smallDictt *self, const char *key)
internal char * keyBySmallJsonSmallDict(smallDictt *self, smallJsont *string)
smallDictt * setNFreeArrayKCharSmallDictG(smallDictt *self, char key, smallArrayt *array)
sStringt * allocSStringTiny(const char *data)
allocate a small string
internal bool getBoolSmallDict(smallDictt *self, const char *key)
internal smallDictt * zipCArraySmallJsonSmallDict(smallDictt *self, const char **keys, smallJsont *values)
internal smallStringt * getNDupSmallStringKCharSmallDict(smallDictt *self, char key)
#define ssGet(obj)
get a pointer to the string in the smallString object
internal smallDictt * setUndefinedSmallDict(smallDictt *self, const char *key)
uint32_t getUint32KCharSmallDictG(smallDictt *self, uint32_t retType UNUSED, char key)
internal char * keyByDictSmallDict(smallDictt *self, smallDictt *dict)
smallDictt * delElemKCharSmallDictG(smallDictt *self, char key)
char * toStringListCSGF(const char **object)
baset * getNDupSmallDictG(smallDictt *self, baset *retType UNUSED, const char *key)
sIntt * allocSInt(int64_t value)
allocate a small int
char * keyByBoolSmallDictG(smallDictt *self, bool value)
internal bool areAllEFaststringSmallDict(smallDictt *self)
undefinedt * getNDupUndefinedSmallDictG(smallDictt *self, undefinedt *retType UNUSED, const char *key)
internal smallDictt * setNFreePSmallJsonKCharSmallDict(smallDictt *self, char key, smallJsont *json)
smallDictt * setSmallStringSmallDictG(smallDictt *self, const char *key, smallStringt *string)
smallDictt * zipArraySmallDictG(smallDictt *self, char **keys, smallArrayt *values)
internal smallArrayt * cropElemArraySmallDict(smallDictt *self, const char *key)
smallStringt * typeSmallStringSmallDictG(smallDictt *self, const char *key)
internal bool hasKCharSmallDict(smallDictt *self, char key)
char * keyBySmallJsonSmallDictG(smallDictt *self, smallJsont *string)
#define enumerateSmallArray(array, element, index)
enumerate non NULL elements in list skip deleted elements
internal int32_t getNDupInt32SmallDict(smallDictt *self, const char *key)
internal smallDictt * setSSmallDict(smallDictt *self, const char *key, const char *string)
internal smallDictt * setNFreePArraySmallDict(smallDictt *self, const char *key, smallArrayt *array)
internal smallDictt * mergeNSmashSmallDict(smallDictt *self, smallDictt *smallDict)
#define RST
reset for color function
internal smallStringt * typeSmallStringSmallDict(smallDictt *self, const char *key)
smallDictt * setNFreePSmallStringSmallDictG(smallDictt *self, const char *key, smallStringt *string)
internal smallDictt * zipSmallJsonVCArraySmallDict(smallDictt *self, smallJsont *keys, const char **values)
internal smallArrayt * getArrayKCharSmallDict(smallDictt *self, char key)
smallDictt * setNFreeSmallStringSmallDictG(smallDictt *self, const char *key, smallStringt *string)
internal bool equalSmallDictBase(smallDictt *self, baset *p2)
smallDictt * zipCArrayArraySmallDictG(smallDictt *self, const char **keys, char **values)
smallDictt * setArraycSmallDictG(smallDictt *self, const char *key, char **array)
internal smallDictt * setSmallBoolKCharSmallDict(smallDictt *self, char key, smallBoolt *value)
internal smallDictt * zipSmallJsonSmallArraySmallDict(smallDictt *self, smallJsont *keys, smallArrayt *values)
internal char * escapeSmallDict(smallDictt *self)
internal smallDictt * zipVCArraySmallDict(smallDictt *self, smallArrayt *keys, const char **values)
smallDictt * setNFreeSmallJsonKCharSmallDictG(smallDictt *self, char key, smallJsont *value)
internal smallBytest * getNDupSmallBytesSmallDict(smallDictt *self, const char *key)
internal smallDictt * mergeNSmashSmallJsonSmallDict(smallDictt *self, smallJsont *json)
smallDictt * setSmallBoolSmallDictG(smallDictt *self, const char *key, smallBoolt *value)
char * keyByArraycSmallDictG(smallDictt *self, char **array)
internal smallDictt * setArraySmallDict(smallDictt *self, const char *key, smallArrayt *array)
smallContainert * allocSmallContainer(void *data)
char * keyBySmallContainerSmallDictG(smallDictt *self, smallContainert *container)
smallDictt * getDictSmallDictG(smallDictt *self, smallDictt *retType UNUSED, const char *key)
internal smallDictt * setCharKCharSmallDict(smallDictt *self, char key, char c)
internal uint64_t getUintSmallDict(smallDictt *self, const char *key)
smallDictt * setArraycKCharSmallDictG(smallDictt *self, char key, char **array)
char * keyBySmallDoubleSmallDictG(smallDictt *self, smallDoublet *value)
smallIntt * cropElemSmallIntSmallDictG(smallDictt *self, const char *key)
uint32_t getNDupUint32SmallDictG(smallDictt *self, uint32_t retType UNUSED, const char *key)
internal smallDictt * setSmallDoubleKCharSmallDict(smallDictt *self, char key, smallDoublet *value)
char * getSKCharSmallDictG(smallDictt *self, char *retType UNUSED, char key)
smallDictt * setIntKCharSmallDictG(smallDictt *self, char key, int64_t value)
uint64_t getUintKCharSmallDictG(smallDictt *self, uint64_t retType UNUSED, char key)
internal const char * iterNextKeySmallDict(smallDictt *self)
internal smallDictt * setBoolKCharSmallDict(smallDictt *self, char key, bool value)
#define isOSmallInt(obj)
test if obj type is smallInt
smallArrayt * toArraySmallDictG(smallDictt *self)
smallDictt * trimSmallDictG(smallDictt *self)
internal char * keyByCArraycSmallDict(smallDictt *self, const char **array)
internal smallDictt * setDoubleSmallDict(smallDictt *self, const char *key, double value)
internal smallDictt * mergeSmallJsonSmallDict(smallDictt *self, smallJsont *json)
bool icEqS(const char *string1, const char *string2)
ignore case string Equal compare string1 to string2
internal smallDictt * setNFreePArrayKCharSmallDict(smallDictt *self, char key, smallArrayt *array)
smallDictt * setSKCharSmallDictG(smallDictt *self, char key, const char *string)
internal bool * getBoolPKCharSmallDict(smallDictt *self, char key)
internal char * keyBySSmallDict(smallDictt *self, const char *string)
internal void * getVoidSmallDict(smallDictt *self, const char *key)
smallArrayt * cropElemArraySmallDictG(smallDictt *self, const char *key)
double getNumSmallDictG(smallDictt *self, const char *key)
void initiateSmallDict(smallDictt *self)
smallDictt * getNDupDictKCharSmallDictG(smallDictt *self, smallDictt *retType UNUSED, char key)
internal smallBoolt * cropElemSmallBoolSmallDict(smallDictt *self, const char *key)
smallDictt * setNFreeArraySmallDictG(smallDictt *self, const char *key, smallArrayt *array)
char * keyBySmallBoolSmallDictG(smallDictt *self, smallBoolt *value)
internal smallDictt * setDictSmallDict(smallDictt *self, const char *key, smallDictt *dict)
char * icKeyBySmallStringSmallDictG(smallDictt *self, smallStringt *string)
internal sDictt * getsoSmallDict(smallDictt *self)
smallDictt * zipSmallJsonSmallJsonSmallDictG(smallDictt *self, smallJsont *keys, smallJsont *values)
smallDictt * allocSmallDictG(smallDictt *self UNUSED)
bool writeFileSmallDictG(smallDictt *self, const char *filePath)
internal smallArrayt * toArraySmallDict(smallDictt *self)
internal bool areAllEBoolSmallDict(smallDictt *self)
internal smallDictt * setNFreeSmallBytesKCharSmallDict(smallDictt *self, char key, smallBytest *value)
terminateSmallDictFt terminate
smallDictt * setNFreeSmallDictG(smallDictt *self, const char *key, baset *value)
internal bool areAllEUndefinedSmallDict(smallDictt *self)
char * keyByArraySmallDictG(smallDictt *self, smallArrayt *array)
smallDictt * setNFreePSmallJsonKCharSmallDictG(smallDictt *self, char key, smallJsont *json)
int writeStreamS(FILE *fp, const char *string)
write string to file
int64_t getNDupIntSmallDictG(smallDictt *self, int64_t retType UNUSED, const char *key)
internal smallContainert * cropElemSmallContainerSmallDict(smallDictt *self, const char *key)
internal smallDictt * typeStringsSmallDict(smallDictt *self)
smallDictt * setSmallStringKCharSmallDictG(smallDictt *self, char key, smallStringt *string)
internal char ** keysSmallDict(smallDictt *self)
smallDictt * fromArraySmallDictG(smallDictt *self, smallArrayt *items)
base class for the small objects all small objects have a type
internal char typeKCharSmallDict(smallDictt *self, char key)
smallArrayt * getArraySmallDictG(smallDictt *self, smallArrayt *retType UNUSED, const char *key)
smallDictt * zipCArrayCArraySmallDictG(smallDictt *self, const char **keys, const char **values)
internal double cropElemDoubleSmallDict(smallDictt *self, const char *key)
internal smallDictt * setPArrayKCharSmallDict(smallDictt *self, char key, smallArrayt *array)
smallDictt * mergeNSmashSmallJsonSmallDictG(smallDictt *self, smallJsont *json)
internal char * keyByUndefinedSmallDict(smallDictt *self, undefinedt *u)
internal bool areAllEDictSmallDict(smallDictt *self)
char * keyByCArraycSmallDictG(smallDictt *self, const char **array)
internal int32_t getInt32SmallDict(smallDictt *self, const char *key)
internal char * icKeyBySmallJsonSmallDict(smallDictt *self, smallJsont *string)
internal smallArrayt * getArraySmallDict(smallDictt *self, const char *key)
#define createAllocateSmallDict(obj)
sBytest * allocSBytes(void)
allocate a small bytes object
internal smallDictt * emptySmallDict(smallDictt *self)
#define forEachCCharP(list, element)
forEach for const char** lists
smallIntt * getSmallIntSmallDictG(smallDictt *self, smallIntt *retType UNUSED, const char *key)
smallDictt * setBoolSmallDictG(smallDictt *self, const char *key, bool value)
smallDictt * setKCharSmallDictG(smallDictt *self, char key, baset *value)
internal smallDictt * setNFreeArrayKCharSmallDict(smallDictt *self, char key, smallArrayt *array)
smallDictt * setIntSmallDictG(smallDictt *self, const char *key, int64_t value)
smallDictt * setCharKCharSmallDictG(smallDictt *self, char key, char c)
internal smallDictt * delSmallDict(smallDictt *self, const char *key)
smallDictt * setNFreeSmallContainerSmallDictG(smallDictt *self, const char *key, smallContainert *container)
int32_t * getInt32PSmallDictG(smallDictt *self, int32_t *retType UNUSED, const char *key)
internal smallDictt * mirrorSmallDict(smallDictt *self)
#define isError(assigned, left)
is Assigment Error catch error when assigned is false, 0 or NULL after being assigned with left ...
#define forEachS(list, element)
forEach - loop macro on list indexes to access the element in the loop, use element ;size_t UNIQVAR n...
#define forEachSmallArray(array, element)
forEach - loop macro on list non NULL elements skip deleted elements
uint64_t * getUintPKCharSmallDictG(smallDictt *self, uint64_t *retType UNUSED, char key)
internal char * icKeyByDictSmallDict(smallDictt *self, smallDictt *dict)
internal smallJsont * getNDupSmallJsonKCharSmallDict(smallDictt *self, char key)
smallJsont * getNDupSmallJsonKCharSmallDictG(smallDictt *self, smallJsont *retType UNUSED, char key)
internal smallStringt * getSmallStringSmallDict(smallDictt *self, const char *key)
internal smallDictt * setSmallDoubleSmallDict(smallDictt *self, const char *key, smallDoublet *value)
internal smallBytest * cropElemSmallBytesSmallDict(smallDictt *self, const char *key)
internal smallDictt * setNFreeSmallIntKCharSmallDict(smallDictt *self, char key, smallIntt *value)
internal smallDictt * setArraycKCharSmallDict(smallDictt *self, char key, char **array)
char * icKeyByCArraycSmallDictG(smallDictt *self, const char **array)
internal bool isEUndefinedSmallDict(smallDictt *self, const char *key)
char * sStringGetTiny(sStringt *string)
get string in a small string object
internal undefinedt * cropElemUndefinedSmallDict(smallDictt *self, const char *key)
smallStringt * typeSmallStringKCharSmallDictG(smallDictt *self, char key)
internal bool cropElemBoolSmallDict(smallDictt *self, const char *key)
internal double getNumSmallDict(smallDictt *self, const char *key)
internal double getDoubleKCharSmallDict(smallDictt *self, char key)
internal double getNDupDoubleSmallDict(smallDictt *self, const char *key)
internal smallDictt * setSmallStringSmallDict(smallDictt *self, const char *key, smallStringt *string)
internal smallDictt * setNFreePDictKCharSmallDict(smallDictt *self, char key, smallDictt *dict)
internal const char * iterKeySmallDict(smallDictt *self)
smallDictt * setNFreeArraycSmallDictG(smallDictt *self, const char *key, char **array)
internal smallDictt * removeKCharSmallDict(smallDictt *self, char key)
internal undefinedt * getNDupUndefinedSmallDict(smallDictt *self, const char *key)
bool * getBoolPSmallDictG(smallDictt *self, bool *retType UNUSED, const char *key)
char * icKeyByArraySmallDictG(smallDictt *self, smallArrayt *array)
smallDictt * mergeNSmashSmallDictG(smallDictt *self, smallDictt *smallDict)
smallStringt * cropElemSmallStringSmallDictG(smallDictt *self, const char *key)
internal smallDictt * setPSmallJsonKCharSmallDict(smallDictt *self, char key, smallJsont *json)
#define getTopTypeO(self)
internal void * getVoidKCharSmallDict(smallDictt *self, char key)
internal smallBoolt * getNDupSmallBoolSmallDict(smallDictt *self, const char *key)
internal bool areAllETypeSmallDict(smallDictt *self, const char *type)
smallDictt * setSmallBytesKCharSmallDictG(smallDictt *self, char key, smallBytest *value)
#define isOSmallJson(obj)
test if obj type is smallJson
void sArrayPushTiny(sArrayt **array, smallt *data)
push data to array
internal void resetSmallDict(smallDictt *self)
#define isOType(obj, className)
test obj type
internal smallDictt * zipSmallDict(smallDictt *self, smallArrayt *keys, smallArrayt *values)
internal bool icEqualSmallDictSmallJson(smallDictt *self, smallJsont *p2)
smallStringFunctionst * f
internal smallDictt * setKCharSmallDict(smallDictt *self, char key, baset *value)
internal smallDictt * setSmallContainerSmallDict(smallDictt *self, const char *key, smallContainert *container)
#define isOSmallContainer(obj)
test if obj type is smallContainer
smallContainert * cropElemSmallContainerSmallDictG(smallDictt *self, const char *key)
smallDictt * zipSmallJsonVArraySmallDictG(smallDictt *self, smallJsont *keys, char **values)
internal smallDictt * setPSmallStringSmallDict(smallDictt *self, const char *key, smallStringt *string)
void finalizeRecycleSmallDict(void *arg UNUSED)
#define elif
elif definition as alternative to else if
internal smallDictt * setPDictSmallDict(smallDictt *self, const char *key, smallDictt *dict)
smallJsont * getSmallJsonSmallDictG(smallDictt *self, smallJsont *retType UNUSED, const char *key)
smallDictt * zipSmallJsonSmallDictG(smallDictt *self, smallArrayt *keys, smallJsont *values)
#define isOUndefined(obj)
test if obj type is undefined
smallt * sDuplicateTiny(smallt *obj)
duplicate small object
#define createAllocateSmallJson(obj)
smallDictt * setNFreeSmallBytesSmallDictG(smallDictt *self, const char *key, smallBytest *value)
bool hasKCharSmallDictG(smallDictt *self, char key)
internal smallDictt * removeSmallDict(smallDictt *self, const char *key)
#define terminateO(obj)
free buffers and obj itself
internal bool writeStreamSmallDict(smallDictt *self, FILE *fp)
internal smallDictt * setPSmallStringKCharSmallDict(smallDictt *self, char key, smallStringt *string)
smallDictt * setBoolKCharSmallDictG(smallDictt *self, char key, bool value)
bool * getBoolPKCharSmallDictG(smallDictt *self, bool *retType UNUSED, char key)
internal smallBoolt * getSmallBoolKCharSmallDict(smallDictt *self, char key)
smallDictt * setNFreeSmallBoolSmallDictG(smallDictt *self, const char *key, smallBoolt *value)
smallDictt * removeElemSmallDictG(smallDictt *self, const char *key)
#define range(index, maxCount)
range loop ;size_t UNIQVAR needed to avoid: error: a label can only be part of a statement and a decl...
smallIntt * getSmallIntKCharSmallDictG(smallDictt *self, smallIntt *retType UNUSED, char key)
internal bool * getBoolPSmallDict(smallDictt *self, const char *key)
pErrorNULL(iPrependS(&ks, "[1]"))
internal smallDictt * zipCArrayArraySmallDict(smallDictt *self, const char **keys, char **values)
internal smallDictt * setNFreeDictKCharSmallDict(smallDictt *self, char key, smallDictt *dict)
internal smallDictt * setNFreeSmallBoolSmallDict(smallDictt *self, const char *key, smallBoolt *value)
bool equalSmallDictBaseG(smallDictt *self, baset *p2)
#define isOSmallBytes(obj)
test if obj type is smallBytes
internal smallBoolt * getSmallBoolSmallDict(smallDictt *self, const char *key)
uint32_t * getUint32PKCharSmallDictG(smallDictt *self, uint32_t *retType UNUSED, char key)
sContainert * allocSContainer(void *data)
allocate a small container The container holds a pointer to a user buffer
smallDictt * setSmallJsonKCharSmallDictG(smallDictt *self, char key, smallJsont *value)
bool cropElemBoolSmallDictG(smallDictt *self, const char *key)
smallDictt * zipSmallJsonVCArraySmallDictG(smallDictt *self, smallJsont *keys, const char **values)
smallBytest * cropElemSmallBytesSmallDictG(smallDictt *self, const char *key)
smallDictt * setNFreeSmallContainerKCharSmallDictG(smallDictt *self, char key, smallContainert *container)
internal const char * typeStringSmallDict(smallDictt *self, const char *key)
internal bool areAllEContainerSmallDict(smallDictt *self)
int writeFileS(const char *filePath, const char *string)
write string to file
double * getDoublePKCharSmallDictG(smallDictt *self, double *retType UNUSED, char key)
sUndefinedt * allocSUndefined(void)
allocate a small undefined object
internal smallDictt * setPDictKCharSmallDict(smallDictt *self, char key, smallDictt *dict)
smallDictt * setNFreeDictKCharSmallDictG(smallDictt *self, char key, smallDictt *dict)
#define setTopNFreeO(self, value)
smallDictt * setSmallIntSmallDictG(smallDictt *self, const char *key, smallIntt *value)
internal smallDoublet * getSmallDoubleKCharSmallDict(smallDictt *self, char key)
internal smallDictt * getDictKCharSmallDict(smallDictt *self, char key)
internal baset * getKCharSmallDict(smallDictt *self, char key)
smallDictt * getDictKCharSmallDictG(smallDictt *self, smallDictt *retType UNUSED, char key)
internal smallDoublet * getNDupSmallDoubleKCharSmallDict(smallDictt *self, char key)
smallDictt * setPDictSmallDictG(smallDictt *self, const char *key, smallDictt *dict)
smallDictt * setDoubleSmallDictG(smallDictt *self, const char *key, double value)
smallDictt * setNFreeArraycKCharSmallDictG(smallDictt *self, char key, char **array)
internal smallDictt * setNFreeSmallDoubleKCharSmallDict(smallDictt *self, char key, smallDoublet *value)
internal char * icKeyByArraycSmallDict(smallDictt *self, char **array)
smallDictt * setArrayKCharSmallDictG(smallDictt *self, char key, smallArrayt *array)
smallDictt * setSmallContainerSmallDictG(smallDictt *self, const char *key, smallContainert *container)
int64_t getIntKCharSmallDictG(smallDictt *self, int64_t retType UNUSED, char key)
smallDictt * setNFreeUndefinedKCharSmallDictG(smallDictt *self, char key, undefinedt *u)
internal const char * helpSmallDict(smallDictt UNUSED *self)
smallArrayt * getArrayKCharSmallDictG(smallDictt *self, smallArrayt *retType UNUSED, char key)
smallDictt * removeElemKCharSmallDictG(smallDictt *self, char key)
internal smallJsont * cropElemSmallJsonSmallDict(smallDictt *self, const char *key)
smallDictt * zipCArraySmallDictG(smallDictt *self, const char **keys, smallArrayt *values)
internal bool isEDoubleSmallDict(smallDictt *self, const char *key)
internal double getDoubleSmallDict(smallDictt *self, const char *key)
internal smallContainert * getNDupSmallContainerKCharSmallDict(smallDictt *self, char key)
internal char * icKeyByCharSmallDict(smallDictt *self, char c)
internal smallDictt * setSmallDict(smallDictt *self, const char *key, baset *value)
internal smallDictt * mergeSmallDict(smallDictt *self, smallDictt *smallDict)
char * keyBySmallIntSmallDictG(smallDictt *self, smallIntt *value)
internal smallDictt * fromArraySmallDict(smallDictt *self, smallArrayt *items)
toStringSmallStringFt toString
internal smallDictt * setSmallIntKCharSmallDict(smallDictt *self, char key, smallIntt *value)
internal baset * iterStartSmallDict(smallDictt *self)
smallDictt * setDoubleKCharSmallDictG(smallDictt *self, char key, double value)
bool appendFileSmallStringSmallDictG(smallDictt *self, smallStringt *filePath)
internal bool equalSmallDict(smallDictt *self, smallDictt *p2)
internal const char * typeStringKCharSmallDict(smallDictt *self, char key)
double getNDupDoubleKCharSmallDictG(smallDictt *self, double retType UNUSED, char key)
internal char * getNDupSSmallDict(smallDictt *self, const char *key)
internal smallDictt * getDictSmallDict(smallDictt *self, const char *key)
int32_t getNDupInt32SmallDictG(smallDictt *self, int32_t retType UNUSED, const char *key)
char * icKeyBySmallDictG(smallDictt *self, baset *value)
void logSmallDictG(smallDictt *self)
internal void setsoSmallDict(smallDictt *self, sDictt *so)
smallDictt * setSmallDoubleSmallDictG(smallDictt *self, const char *key, smallDoublet *value)
bool getBoolSmallDictG(smallDictt *self, bool retType UNUSED, const char *key)
internal smallDictt * setNFreePSmallStringSmallDict(smallDictt *self, const char *key, smallStringt *string)
double getDoubleKCharSmallDictG(smallDictt *self, double retType UNUSED, char key)
internal smallDictt * setNFreeSmallContainerKCharSmallDict(smallDictt *self, char key, smallContainert *container)
internal smallDictt * setBoolSmallDict(smallDictt *self, const char *key, bool value)
smallContainert * getSmallContainerKCharSmallDictG(smallDictt *self, smallContainert *retType UNUSED, char key)
void finalizeSmallDict(void)
internal smallJsont * getNDupSmallJsonSmallDict(smallDictt *self, const char *key)
internal smallDoublet * cropElemSmallDoubleSmallDict(smallDictt *self, const char *key)
internal char * icKeyByArraySmallDict(smallDictt *self, smallArrayt *array)
internal smallStringt * getSmallStringKCharSmallDict(smallDictt *self, char key)
#define cast(type, casted, toCast)
define variable and cast pointer
internal smallDictt * zipArraySmallDict(smallDictt *self, char **keys, smallArrayt *values)
internal bool isEArraySmallDict(smallDictt *self, const char *key)
smallDictt * setCArraycSmallDictG(smallDictt *self, const char *key, const char **array)
internal uint64_t getNDupUintKCharSmallDict(smallDictt *self, char key)
smallDictt * setNFreeSmallBytesKCharSmallDictG(smallDictt *self, char key, smallBytest *value)
void initiateAllocateSmallDict(smallDictt **self)
internal smallDictt * setNFreeSmallBoolKCharSmallDict(smallDictt *self, char key, smallBoolt *value)
internal smallArrayt * valuesSmallDict(smallDictt *self)
smallDictt * delKCharSmallDictG(smallDictt *self, char key, int unused UNUSED)
internal smallDictt * setNFreeKCharSmallDict(smallDictt *self, char key, baset *value)
internal smallDictt * zipCArrayCArraySmallDict(smallDictt *self, const char **keys, const char **values)
internal smallDictt * setNFreeSmallContainerSmallDict(smallDictt *self, const char *key, smallContainert *container)
smallDictt * zipArrayCArraySmallDictG(smallDictt *self, char **keys, const char **values)
#define toStringO(obj)
convert data in obj to string
smallDictt * setDictSmallDictG(smallDictt *self, const char *key, smallDictt *dict)
bool writeStreamSmallDictG(smallDictt *self, FILE *fp)
internal smallDictt * setNFreeArraycKCharSmallDict(smallDictt *self, char key, char **array)
void freeSmallDictG(smallDictt *self)
smallDictt * getNDupDictSmallDictG(smallDictt *self, smallDictt *retType UNUSED, const char *key)
internal bool isETypeSmallDict(smallDictt *self, const char *key, const char *type)
smallDictt * setNFreeSmallStringKCharSmallDictG(smallDictt *self, char key, smallStringt *string)
undefinedt * getNDupUndefinedKCharSmallDictG(smallDictt *self, undefinedt *retType UNUSED, char key)
internal undefinedt * getUndefinedSmallDict(smallDictt *self, const char *key)
#define removeElemO(self, index)
internal char * keyBySmallDict(smallDictt *self, baset *value)
internal void * cropElemVoidSmallDict(smallDictt *self, const char *key)
internal char * keyByArraycSmallDict(smallDictt *self, char **array)
internal smallDictt * setArraycSmallDict(smallDictt *self, const char *key, char **array)
baset * getSmallDictG(smallDictt *self, baset *retType UNUSED, const char *key)
internal smallIntt * cropElemSmallIntSmallDict(smallDictt *self, const char *key)
internal smallDictt * setNFreeArraycSmallDict(smallDictt *self, const char *key, char **array)
smallIntt * getNDupSmallIntKCharSmallDictG(smallDictt *self, smallIntt *retType UNUSED, char key)
smallDictt * setCArraycKCharSmallDictG(smallDictt *self, char key, const char **array)
smallContainert * getNDupSmallContainerKCharSmallDictG(smallDictt *self, smallContainert *retType UNUSED, char key)
smallDictt * zipSmallDictG(smallDictt *self, smallArrayt *keys, smallArrayt *values)
smallStringt * getSmallStringSmallDictG(smallDictt *self, smallStringt *retType UNUSED, const char *key)
smallDictt * setVoidKCharSmallDictG(smallDictt *self, char key, void *value)
internal smallDictt * setSmallIntSmallDict(smallDictt *self, const char *key, smallIntt *value)
sDictt * allocSDict(void)
allocate a small dict
smallBytest * getSmallBytesSmallDictG(smallDictt *self, smallBytest *retType UNUSED, const char *key)
internal char * getSSmallDict(smallDictt *self, const char *key)
smallDictt * setUndefinedKCharSmallDictG(smallDictt *self, char key, undefinedt *value UNUSED)
char * getNDupSSmallDictG(smallDictt *self, char *retType UNUSED, const char *key)
sContainert * data
pointer to data in smallContainer
internal bool icEqualSmallDictBase(smallDictt *self, baset *p2)
char * keyByDoubleSmallDictG(smallDictt *self, double value)
void cleanUpSmallDictFreeLocalG(smallDictt *val)
internal smallDoublet * getNDupSmallDoubleSmallDict(smallDictt *self, const char *key)
smallDictt * setPSmallJsonSmallDictG(smallDictt *self, const char *key, smallJsont *json)
smallStringt * getSmallStringKCharSmallDictG(smallDictt *self, smallStringt *retType UNUSED, char key)
internal smallDictt * setNFreeSmallIntSmallDict(smallDictt *self, const char *key, smallIntt *value)
internal smallDictt * setNFreePDictSmallDict(smallDictt *self, const char *key, smallDictt *dict)
internal char * keyByArraySmallDict(smallDictt *self, smallArrayt *array)
smallDictt * setNFreeKCharSmallDictG(smallDictt *self, char key, baset *value)
smallDictt * emptySmallDictG(smallDictt *self)
internal smallContainert * getSmallContainerSmallDict(smallDictt *self, const char *key)
smallStringt * getNDupSmallStringKCharSmallDictG(smallDictt *self, smallStringt *retType UNUSED, char key)
internal int32_t getNDupInt32KCharSmallDict(smallDictt *self, char key)
internal char * keyByCharSmallDict(smallDictt *self, char c)
internal smallDictt * zipSmallJsonSmallJsonSmallDict(smallDictt *self, smallJsont *keys, smallJsont *values)
smallt * sDictGetTiny(sDictt *dict, const char *key)
get object stored at key
internal double * getDoublePKCharSmallDict(smallDictt *self, char key)
internal smallDictt * setSmallStringKCharSmallDict(smallDictt *self, char key, smallStringt *string)
void cleanUpSmallDictSmashG(smallDictt **val)
internal int64_t * getIntPKCharSmallDict(smallDictt *self, char key)
internal smallArrayt * getNDupArraySmallDict(smallDictt *self, const char *key)
char * icKeyBySSmallDictG(smallDictt *self, const char *string)
internal undefinedt * getNDupUndefinedKCharSmallDict(smallDictt *self, char key)
internal uint32_t getNDupUint32SmallDict(smallDictt *self, const char *key)
smallContainerFunctionst * f
double getDoubleSmallDictG(smallDictt *self, double retType UNUSED, const char *key)
smallJsont * getNDupSmallJsonSmallDictG(smallDictt *self, smallJsont *retType UNUSED, const char *key)
smallBytest * getSmallBytesKCharSmallDictG(smallDictt *self, smallBytest *retType UNUSED, char key)
baset * getNDupKCharSmallDictG(smallDictt *self, baset *retType UNUSED, char key)
char * toStringListSGF(char **object)
bool getBoolKCharSmallDictG(smallDictt *self, bool retType UNUSED, char key)
smallDictt * duplicateSmallDictG(smallDictt *self)
baset * toBaset(smallt *obj)
convert smallt object to baset
internal int64_t getNDupIntKCharSmallDict(smallDictt *self, char key)
internal uint32_t getUint32KCharSmallDict(smallDictt *self, char key)
internal smallContainert * getNDupSmallContainerSmallDict(smallDictt *self, const char *key)
internal smallDictt * setSmallBytesSmallDict(smallDictt *self, const char *key, smallBytest *value)
smallDictt * setNFreeDictSmallDictG(smallDictt *self, const char *key, smallDictt *dict)
internal bool areAllEBytesSmallDict(smallDictt *self)
internal smallDictt * setNFreeSSmallDict(smallDictt *self, const char *key, char *string)
#define isOSmallDouble(obj)
test if obj type is smallDouble
void sDictPushTiny(sDictt **dict, const char *key, smallt *data)
push new key-value
internal smallDictt * setNFreeSmallBytesSmallDict(smallDictt *self, const char *key, smallBytest *value)
internal uint64_t getNDupUintSmallDict(smallDictt *self, const char *key)
void * sBytesGet(sBytest *bytes)
get buffer in small bytes
bool equalSmallDictG(smallDictt *self, smallDictt *p2)
smallDictt * delElemSmallDictG(smallDictt *self, const char *key)
void * getNDupVoidKCharSmallDictG(smallDictt *self, void *retType UNUSED, char key)
internal smallArrayt * keysSmallStringSmallDict(smallDictt *self)
internal uint64_t cropElemUintSmallDict(smallDictt *self, const char *key)
internal void * getNDupVoidKCharSmallDict(smallDictt *self, char key)
internal char * keyBySmallContainerSmallDict(smallDictt *self, smallContainert *container)
internal smallIntt * getNDupSmallIntSmallDict(smallDictt *self, const char *key)
internal smallDictt * setIntSmallDict(smallDictt *self, const char *key, int64_t value)
sDoublet * allocSDouble(double value)
allocate a small double
internal char * keyBySmallStringSmallDict(smallDictt *self, smallStringt *string)
internal uint32_t * getUint32PSmallDict(smallDictt *self, const char *key)
#define isOSmallDict(obj)
test if obj type is smallDictt
internal smallBytest * getSmallBytesKCharSmallDict(smallDictt *self, char key)
const char * typeStringKCharSmallDictG(smallDictt *self, char key)
internal void * getNDupVoidSmallDict(smallDictt *self, const char *key)
internal smallDictt * zipCArraySmallDict(smallDictt *self, const char **keys, smallArrayt *values)
#define BLD
bold for color function
smallDictt * zipSmallJsonSmallArraySmallDictG(smallDictt *self, smallJsont *keys, smallArrayt *values)
internal uint64_t * getUintPKCharSmallDict(smallDictt *self, char key)
internal char * icKeyBySmallStringSmallDict(smallDictt *self, smallStringt *string)
smallDoublet * getSmallDoubleKCharSmallDictG(smallDictt *self, smallDoublet *retType UNUSED, char key)
char * dupS(const char *string)
duplicate string
smallDictt * setPArraySmallDictG(smallDictt *self, const char *key, smallArrayt *array)
smallJsont * cropElemSmallJsonSmallDictG(smallDictt *self, const char *key)
smallDictt * setSmallContainerKCharSmallDictG(smallDictt *self, char key, smallContainert *container)
smallDictt * zipArrayArraySmallDictG(smallDictt *self, char **keys, char **values)
toStringSmallDictFt toString
smallDictt * allocSmallDict(void)
int32_t cropElemInt32SmallDictG(smallDictt *self, const char *key)
smallBytest * getNDupSmallBytesKCharSmallDictG(smallDictt *self, smallBytest *retType UNUSED, char key)
bool icEqualSmallDictBaseG(smallDictt *self, baset *p2)
smallDictt * setPArrayKCharSmallDictG(smallDictt *self, char key, smallArrayt *array)
END_TEST createSmallArray(obj)
smallContainert * getNDupSmallContainerSmallDictG(smallDictt *self, smallContainert *retType UNUSED, const char *key)
internal bool isEContainerSmallDict(smallDictt *self, const char *key)
smallDictt * removeSmallDictG(smallDictt *self, const char *key, int unused UNUSED)
internal smallDictt * appendNSmashSmallDict(smallDictt *self, smallDictt *smallDict)
size_t listLengthCS(const char **list)
const list Length String return number of elements until the first NULL element
uint32_t * getUint32PSmallDictG(smallDictt *self, uint32_t *retType UNUSED, const char *key)
smallDictt * setNFreePDictSmallDictG(smallDictt *self, const char *key, smallDictt *dict)
bool icEqualSmallDictG(smallDictt *self, smallDictt *p2)
internal char * keyBySmallBytesSmallDict(smallDictt *self, smallBytest *value)
smallArrayt * getNDupArrayKCharSmallDictG(smallDictt *self, smallArrayt *retType UNUSED, char key)
uint64_t * getUintPSmallDictG(smallDictt *self, uint64_t *retType UNUSED, const char *key)
initiateAllocateSmallJson & json
internal void disposeSmallDict(smallDictt *self)
internal smallDictt * setNFreeDictSmallDict(smallDictt *self, const char *key, smallDictt *dict)
internal void enumerateSmallDictF(smallDictt *self, void *closure, enumerateElementSmallDictFt funcElem)
uint32_t getNDupUint32KCharSmallDictG(smallDictt *self, uint32_t retType UNUSED, char key)
smallDictt * setPSmallStringSmallDictG(smallDictt *self, const char *key, smallStringt *string)
char * keyByUndefinedSmallDictG(smallDictt *self, undefinedt *u)
#define isOSmallBool(obj)
test if obj type is smallBool
#define forEachSDict(dict, element)
internal bool getNDupBoolKCharSmallDict(smallDictt *self, char key)
internal bool isEBytesSmallDict(smallDictt *self, const char *key)
internal smallDictt * zipArrayCArraySmallDict(smallDictt *self, char **keys, const char **values)
internal smallStringt * typeSmallStringKCharSmallDict(smallDictt *self, char key)
bool writeFileSmallStringSmallDictG(smallDictt *self, smallStringt *filePath)
internal int32_t * getInt32PSmallDict(smallDictt *self, const char *key)
internal int32_t * getInt32PKCharSmallDict(smallDictt *self, char key)
smallDictt * setVoidSmallDictG(smallDictt *self, const char *key, void *value)
double getNDupDoubleSmallDictG(smallDictt *self, double retType UNUSED, const char *key)
internal smallDictt * duplicateSmallDict(smallDictt *self)
int64_t * getIntPSmallDictG(smallDictt *self, int64_t *retType UNUSED, const char *key)
smallDictt * setPDictKCharSmallDictG(smallDictt *self, char key, smallDictt *dict)
internal smallDictt * cropElemDictSmallDict(smallDictt *self, const char *key)
bool writeFileSmallJsonSmallDictG(smallDictt *self, smallJsont *filePath)
internal void logSmallDict(smallDictt *self)
internal smallDictt * setNFreeUndefinedKCharSmallDict(smallDictt *self, char key, undefinedt *u)
internal void smashSmallDict(smallDictt **self)
smallDictt * zipCArraySmallJsonSmallDictG(smallDictt *self, const char **keys, smallJsont *values)
smallDictt * setSmallIntKCharSmallDictG(smallDictt *self, char key, smallIntt *value)
char * cropElemSSmallDictG(smallDictt *self, const char *key)
internal char * getNDupSKCharSmallDict(smallDictt *self, char key)
char * sToStringTiny(smallt *obj)
stringify a small object
smallDictt * setSmallBoolKCharSmallDictG(smallDictt *self, char key, smallBoolt *value)
internal smallDictt * zipVArraySmallDict(smallDictt *self, smallArrayt *keys, char **values)
baset * getKCharSmallDictG(smallDictt *self, baset *retType UNUSED, char key)
internal int32_t cropElemInt32SmallDict(smallDictt *self, const char *key)
internal char * keyBySmallIntSmallDict(smallDictt *self, smallIntt *value)
smallDictt * setNFreeUndefinedSmallDictG(smallDictt *self, const char *key, undefinedt *value)
internal bool writeFileSmallStringSmallDict(smallDictt *self, smallStringt *filePath)
undefinedt * allocUndefined(void)
smallDoublet * cropElemSmallDoubleSmallDictG(smallDictt *self, const char *key)
char * keyByIntSmallDictG(smallDictt *self, int64_t value)
internal baset * getNDupSmallDict(smallDictt *self, const char *key)
#define helpTextSmallDict
help text for this class It is public declaration so that child classes can add their help text easil...
smallDictt * setPSmallJsonKCharSmallDictG(smallDictt *self, char key, smallJsont *json)
char * keyBySmallBytesSmallDictG(smallDictt *self, smallBytest *value)
undefinedt * cropElemUndefinedSmallDictG(smallDictt *self, const char *key)
internal bool getBoolKCharSmallDict(smallDictt *self, char key)
internal smallDictt * setNFreeSmallStringKCharSmallDict(smallDictt *self, char key, smallStringt *string)
bool appendFileS(const char *filePath, const char *string)
append string to filePath
internal char * getSKCharSmallDict(smallDictt *self, char key)
duplicateSmallDictFt duplicate
smallDoublet * getNDupSmallDoubleSmallDictG(smallDictt *self, smallDoublet *retType UNUSED, const char *key)
internal size_t lenSmallDict(smallDictt *self)
int32_t getInt32SmallDictG(smallDictt *self, int32_t retType UNUSED, const char *key)
internal smallDictt * setSmallJsonKCharSmallDict(smallDictt *self, char key, smallJsont *value)
internal smallDictt * setNFreeSKCharSmallDict(smallDictt *self, char key, char *string)
smallt * toSmallt(baset *obj)
convert baset object to smallt
internal bool appendFileSmallDict(smallDictt *self, const char *filePath)
smallDictt * setArraySmallDictG(smallDictt *self, const char *key, smallArrayt *array)
smallDictt * setNFreeSSmallDictG(smallDictt *self, const char *key, char *string)
smallDictt * setSmallDoubleKCharSmallDictG(smallDictt *self, char key, smallDoublet *value)
smallDictt * setSmallJsonSmallDictG(smallDictt *self, const char *key, smallJsont *value)
internal bool getNDupBoolSmallDict(smallDictt *self, const char *key)
void sDictDelTiny(sDictt *dict, const char *key)
delete dictionary element
bool getNDupBoolSmallDictG(smallDictt *self, bool retType UNUSED, const char *key)
sBoolt * allocSBool(bool value)
allocate a small bool
void cleanUpSmallDictFreeG(smallDictt **val)
internal smallDictt * zipArraySmallJsonSmallDict(smallDictt *self, char **keys, smallJsont *values)
internal int64_t * getIntPSmallDict(smallDictt *self, const char *key)
char * keyBySmallStringSmallDictG(smallDictt *self, smallStringt *string)
int64_t getNDupIntKCharSmallDictG(smallDictt *self, int64_t retType UNUSED, char key)
internal bool writeFileSmallJsonSmallDict(smallDictt *self, smallJsont *filePath)
internal int64_t cropElemIntSmallDict(smallDictt *self, const char *key)
void sArrayFreeTiny(sArrayt *array)
free array elements and array object
smallDictt * setDictKCharSmallDictG(smallDictt *self, char key, smallDictt *dict)
uint64_t cropElemUintSmallDictG(smallDictt *self, const char *key)
smallBoolt * getNDupSmallBoolSmallDictG(smallDictt *self, smallBoolt *retType UNUSED, const char *key)
bool isEmptySmallDictG(smallDictt *self)
internal smallDictt * setSKCharSmallDict(smallDictt *self, char key, const char *string)
internal smallIntt * getSmallIntKCharSmallDict(smallDictt *self, char key)
smallDictt * mergeSmallDictG(smallDictt *self, smallDictt *smallDict)
#define forEachCharP(list, element)
forEach - loop macro on list indexes to access the element in the loop, use *element ...
void * getVoidKCharSmallDictG(smallDictt *self, void *retType UNUSED, char key)
uint32_t getUint32SmallDictG(smallDictt *self, uint32_t retType UNUSED, const char *key)
internal smallDictt * setCArraycSmallDict(smallDictt *self, const char *key, const char **array)
smallBoolt * cropElemSmallBoolSmallDictG(smallDictt *self, const char *key)
void sDictSetTiny(sDictt **dict, const char *key, smallt *data)
dictionary set key, value
smallStringt * allocSmallString(const char *string)
char * keyByDictSmallDictG(smallDictt *self, smallDictt *dict)
internal undefinedt * getUndefinedKCharSmallDict(smallDictt *self, char key)
smallDictt * setNFreePDictKCharSmallDictG(smallDictt *self, char key, smallDictt *dict)
smallArrayt * keysSmallStringSmallDictG(smallDictt *self)
internal smallDictt * setNFreeSmallStringSmallDict(smallDictt *self, const char *key, smallStringt *string)
internal char * keyByIntSmallDict(smallDictt *self, int64_t value)
char * getNDupSKCharSmallDictG(smallDictt *self, char *retType UNUSED, char key)
bool getNDupBoolKCharSmallDictG(smallDictt *self, bool retType UNUSED, char key)
#define getValO(self)
get value in smallBool, smallBytes, smallDouble, smallInt, smallString
internal uint32_t getNDupUint32KCharSmallDict(smallDictt *self, char key)
smallDictt * zipArraySmallJsonSmallDictG(smallDictt *self, char **keys, smallJsont *values)
uint64_t getNDupUintSmallDictG(smallDictt *self, uint64_t retType UNUSED, const char *key)
internal char * keyBySmallDoubleSmallDict(smallDictt *self, smallDoublet *value)
#define rangeFrom(index, from, maxCount)
range loop starting at value from ;size_t UNIQVAR needed to avoid: error: a label can only be part of...
void cleanUpSmallDictDisposeG(smallDictt *val)
smallBoolt * getNDupSmallBoolKCharSmallDictG(smallDictt *self, smallBoolt *retType UNUSED, char key)
void * getNDupVoidSmallDictG(smallDictt *self, void *retType UNUSED, const char *key)
internal smallDictt * setNFreeSmallJsonKCharSmallDict(smallDictt *self, char key, smallJsont *value)
internal smallStringt * getNDupSmallStringSmallDict(smallDictt *self, const char *key)
#define fromArrayNFreeO(self, array, size)
smallJsont * getSmallJsonKCharSmallDictG(smallDictt *self, smallJsont *retType UNUSED, char key)
bool(* enumerateElementSmallDictFt)(void *closure, char *key, baset *element)
user defined function called in the enumerate loop this fucntion is a parameter to the enumerate func...
smallDictt * setPSmallStringKCharSmallDictG(smallDictt *self, char key, smallStringt *string)
uint32_t cropElemUint32SmallDictG(smallDictt *self, const char *key)
smallDictt * setNFreeSmallDoubleKCharSmallDictG(smallDictt *self, char key, smallDoublet *value)
int32_t getNDupInt32KCharSmallDictG(smallDictt *self, int32_t retType UNUSED, char key)
internal smallDictt * zipSmallJsonSmallDict(smallDictt *self, smallArrayt *keys, smallJsont *values)
internal smallDictt * setIntKCharSmallDict(smallDictt *self, char key, int64_t value)
internal double * getDoublePSmallDict(smallDictt *self, const char *key)
internal baset * getSmallDict(smallDictt *self, const char *key)
smallt * sArrayGetTiny(sArrayt *array, uint32_t index)
get object at index
#define freeO(obj)
free buffers in obj
internal smallJsont * getSmallJsonKCharSmallDict(smallDictt *self, char key)
internal smallBoolt * getNDupSmallBoolKCharSmallDict(smallDictt *self, char key)
internal baset * getNDupKCharSmallDict(smallDictt *self, char key)
smallDictt * setNFreePSmallStringKCharSmallDictG(smallDictt *self, char key, smallStringt *string)
smallDictt * setNFreeSmallIntKCharSmallDictG(smallDictt *self, char key, smallIntt *value)
internal smallDictt * setNFreeSmallJsonSmallDict(smallDictt *self, const char *key, smallJsont *value)
smallContainert * getSmallContainerSmallDictG(smallDictt *self, smallContainert *retType UNUSED, const char *key)
internal smallDictt * setUndefinedKCharSmallDict(smallDictt *self, char key)
void sFree(smallt *obj)
free non null objects
internal bool isEIntSmallDict(smallDictt *self, const char *key)
internal char * keyBySmallBoolSmallDict(smallDictt *self, smallBoolt *value)
internal void terminateSmallDict(smallDictt **self)
internal smallDictt * setNFreeArraySmallDict(smallDictt *self, const char *key, smallArrayt *array)
internal smallStringt * cropElemSmallStringSmallDict(smallDictt *self, const char *key)
size_t lenSmallDictG(smallDictt *self)
smallDictt * setNFreePArrayKCharSmallDictG(smallDictt *self, char key, smallArrayt *array)
uint64_t getNDupUintKCharSmallDictG(smallDictt *self, uint64_t retType UNUSED, char key)
#define delElemO(self, index)
internal smallDictt * appendSmallDict(smallDictt *self, smallDictt *smallDict)
baset * cropElemSmallDictG(smallDictt *self, const char *key)
internal smallDictt * setSmallContainerKCharSmallDict(smallDictt *self, char key, smallContainert *container)
internal smallDictt * setSmallJsonSmallDict(smallDictt *self, const char *key, smallJsont *value)
internal char * cropElemSSmallDict(smallDictt *self, const char *key)
smallBoolt * getSmallBoolKCharSmallDictG(smallDictt *self, smallBoolt *retType UNUSED, char key)
void cleanUpSmallDictTerminateG(smallDictt **val)
smallDictt * setNFreePSmallJsonSmallDictG(smallDictt *self, const char *key, smallJsont *json)
internal uint32_t * getUint32PKCharSmallDict(smallDictt *self, char key)
smallDictt * setSmallDictG(smallDictt *self, const char *key, baset *value)
smallDictt * setNFreeSmallDoubleSmallDictG(smallDictt *self, const char *key, smallDoublet *value)
size_t listLengthS(char **list)
list Length String return number of elements until the first NULL element
char ** listPushS(char ***list, const char *s)
list Push String append s at the end of the list when list is NULL, a new list with one element is re...
internal smallDictt * setPSmallJsonSmallDict(smallDictt *self, const char *key, smallJsont *json)
bool icEqualSmallDictSmallJsonG(smallDictt *self, smallJsont *p2)
internal smallDictt * setCArraycKCharSmallDict(smallDictt *self, char key, const char **array)
internal baset * cropElemSmallDict(smallDictt *self, const char *key)
char * keyByCharSmallDictG(smallDictt *self, char c)
smallDictt * delSmallDictG(smallDictt *self, const char *key, int unused UNUSED)
smallDoublet * getSmallDoubleSmallDictG(smallDictt *self, smallDoublet *retType UNUSED, const char *key)
sArrayt * allocSArray(void)
allocate a small array
internal int32_t getInt32KCharSmallDict(smallDictt *self, char key)
internal smallDictt * trimSmallDict(smallDictt *self)
internal smallDictt * setSmallBoolSmallDict(smallDictt *self, const char *key, smallBoolt *value)
#define pushNFreeO(self, value)
smallDictt * mergeSmallJsonSmallDictG(smallDictt *self, smallJsont *json)
smallBytest * getNDupSmallBytesSmallDictG(smallDictt *self, smallBytest *retType UNUSED, const char *key)
internal smallDictt * setPArraySmallDict(smallDictt *self, const char *key, smallArrayt *array)
internal double getNDupDoubleKCharSmallDict(smallDictt *self, char key)
internal char * keyByDoubleSmallDict(smallDictt *self, double value)
void * cropElemVoidSmallDictG(smallDictt *self, const char *key)
int64_t * getIntPKCharSmallDictG(smallDictt *self, int64_t *retType UNUSED, char key)
char * keyBySSmallDictG(smallDictt *self, const char *string)
uint64_t getUintSmallDictG(smallDictt *self, uint64_t retType UNUSED, const char *key)
smallBoolt * getSmallBoolSmallDictG(smallDictt *self, smallBoolt *retType UNUSED, const char *key)
internal char * icKeyBySmallDict(smallDictt *self, baset *value)
bool equalSmallDictSmallJsonG(smallDictt *self, smallJsont *p2)
internal smallDictt * setArrayKCharSmallDict(smallDictt *self, char key, smallArrayt *array)
double cropElemDoubleSmallDictG(smallDictt *self, const char *key)
undefinedt * getUndefinedKCharSmallDictG(smallDictt *self, undefinedt *retType UNUSED, char key)
internal uint64_t * getUintPSmallDict(smallDictt *self, const char *key)
double * getDoublePSmallDictG(smallDictt *self, double *retType UNUSED, const char *key)
internal bool icEqualSmallDict(smallDictt *self, smallDictt *p2)
undefinedt * getUndefinedSmallDictG(smallDictt *self, undefinedt *retType UNUSED, const char *key)
#define createAllocateSmallArray(obj)
smallDictt * removeKCharSmallDictG(smallDictt *self, char key, int unused UNUSED)
smallIntt * getNDupSmallIntSmallDictG(smallDictt *self, smallIntt *retType UNUSED, const char *key)
internal char * keyByBoolSmallDict(smallDictt *self, bool value)
internal bool isEStringSmallDict(smallDictt *self, const char *key)
internal baset * iterElementSmallDict(smallDictt *self)
internal uint64_t getUintKCharSmallDict(smallDictt *self, char key)
internal const char * iterStartKeySmallDict(smallDictt *self)
#define finishO(obj)
free container only
#define isOSmallArray(obj)
test if obj type is smallArray
smallDoublet * getNDupSmallDoubleKCharSmallDictG(smallDictt *self, smallDoublet *retType UNUSED, char key)
internal bool equalSmallDictSmallJson(smallDictt *self, smallJsont *p2)
internal smallBytest * getNDupSmallBytesKCharSmallDict(smallDictt *self, char key)
internal int64_t getIntKCharSmallDict(smallDictt *self, char key)
smallDictt * setNFreeSmallJsonSmallDictG(smallDictt *self, const char *key, smallJsont *value)
smallDictt * zipVCArraySmallDictG(smallDictt *self, smallArrayt *keys, const char **values)
internal uint32_t getUint32SmallDict(smallDictt *self, const char *key)
internal bool areAllEIntSmallDict(smallDictt *self)
int32_t * getInt32PKCharSmallDictG(smallDictt *self, int32_t *retType UNUSED, char key)
#define smashO(obj)
free object and keep data
smallDoubleFunctionst * f
smallDictt * setSmallBytesSmallDictG(smallDictt *self, const char *key, smallBytest *value)
smallArrayt * getNDupArraySmallDictG(smallDictt *self, smallArrayt *retType UNUSED, const char *key)
smallStringt * getNDupSmallStringSmallDictG(smallDictt *self, smallStringt *retType UNUSED, const char *key)
internal bool isEBoolSmallDict(smallDictt *self, const char *key)
smallt * sDuplicate(smallt *o)
duplicate small object
internal int64_t getIntSmallDict(smallDictt *self, const char *key)
smallDictt * setNFreeSKCharSmallDictG(smallDictt *self, char key, char *string)
internal smallJsont * getSmallJsonSmallDict(smallDictt *self, const char *key)
smallDictt * setNFreePArraySmallDictG(smallDictt *self, const char *key, smallArrayt *array)
internal smallDictt * zipSmallJsonVArraySmallDict(smallDictt *self, smallJsont *keys, char **values)
internal bool hasSmallDict(smallDictt *self, const char *key)
internal smallDictt * setNFreeUndefinedSmallDict(smallDictt *self, const char *key, undefinedt *u)
smallDictt * setCharSmallDictG(smallDictt *self, const char *key, char c)
#define duplicateO(obj)
create a copy of obj
internal baset * iterNextSmallDict(smallDictt *self)
internal smallIntt * getNDupSmallIntKCharSmallDict(smallDictt *self, char key)
void registerMethodsSmallDict(smallDictFunctionst *f)
smallDictt * zipVArraySmallDictG(smallDictt *self, smallArrayt *keys, char **values)
internal smallDictt * setNFreeSmallDict(smallDictt *self, const char *key, baset *value)
#define isOSmallString(obj)
test if obj type is smallString
internal char * icKeyByCArraycSmallDict(smallDictt *self, const char **array)