40 NOT_AN_OBJECT,
UNDEFINED,
BOOL,
CONTAINER,
DICT,
DICT_ELEM,
DOUBLE,
INT,
STRING,
FASTSTRING,
ARRAY,
BYTES 46 static const char *SMALL_TYPE_NAMES[]
UNUSED = {
47 "not a sheepy object",
193 #define isSType(obj, sType) (((smallt *) (obj))->type == sType) 200 #define getSType(obj) obj ? ((smallt *) (obj))->type : -1 208 #define getSTypeS(obj) obj ? SMALL_TYPE_NAMES[(unsigned char)((smallt *) (obj))->type] : NULL 260 #define forEachSDict(dict, element) \ 261 sDictElemt *element = &((dict)->elements); \ 262 for (size_t UNIQVAR(libsheepyInternalIndex) = 0; UNIQVAR(libsheepyInternalIndex) < (dict)->count ; UNIQVAR(libsheepyInternalIndex)++, element = UNIQVAR(libsheepyInternalIndex) < (dict)->count ? &((dict)->elements) + UNIQVAR(libsheepyInternalIndex) : NULL) 264 #define enumerateSDict(dict, element, index) \ 265 sDictElemt *element = &((dict)->elements); \ 266 for (size_t index = 0; index < (dict)->count ; index++, index < (dict)->count ? element = &((dict)->elements) + index : NULL) 268 #define forEachSArray(array, element) \ 269 smallt *element = ((smallt **) &((array)->data))[0]; \ 270 for (size_t UNIQVAR(libsheepyInternalIndex) = 0; UNIQVAR(libsheepyInternalIndex) < (array)->count ; UNIQVAR(libsheepyInternalIndex)++, element = UNIQVAR(libsheepyInternalIndex) < (array)->count ? ((smallt **) &((array)->data))[UNIQVAR(libsheepyInternalIndex)] : NULL) 272 #define enumerateSArray(array, element, index) \ 273 smallt *element = ((smallt **) &((array)->data))[0]; \ 274 for (size_t index = 0; index < (array)->count ; index++, element = index < (array)->count ? ((smallt **) &((array)->data))[index] : NULL) char * sStringToStringTiny(sStringt *obj) MUST_CHECK
stringify string
char * sStringEscapeTiny(sStringt *obj) MUST_CHECK
stringify string
void sArrayFreeTiny(sArrayt *array)
free array elements and array object
dictionary element: key, value
sBoolt * allocSBool(bool value) MUST_CHECK
allocate a small bool
smallt * sArrayDequeueTiny(sArrayt *array) MUST_CHECK
dequeue object from array
smallt * sDuplicate(smallt *o) MUST_CHECK
duplicate small object
char * sEscapeTiny(smallt *obj) MUST_CHECK
stringify a small object
char * sToString(smallt *obj) MUST_CHECK
stringify object
void sStringSetTiny(sStringt **string, const char *news)
set string in small string
sStringt * allocSStringTiny(const char *data) MUST_CHECK
allocate a small string
const char ** sArrayTypeStrings(sArrayt *obj) MUST_CHECK
list first level of array types in a list of strings
smallt * sDuplicateTiny(smallt *obj) MUST_CHECK
duplicate small object
void sArrayPrependTiny(sArrayt **array, smallt *data)
prepend data in array
void sArraySetShortTiny(sArrayt *array, uint32_t index, smallt *value)
set value at index
sArrayt * allocSArray(void) MUST_CHECK
allocate a small array
char * sBytesToStringTiny(sBytest *obj) MUST_CHECK
stringify small bytes
base class for the small objects all small objects have a type
const char ** sDictTypeStrings(sDictt *obj) MUST_CHECK
list first level of dictionary types in a list of strings
char * sIntToStringTiny(sIntt *obj) MUST_CHECK
stringify int
sBytest * allocSBytes(void) MUST_CHECK
allocate a small bytes object
void sDictDeserialElementsTiny(sDictt **dict, char **data)
deserialize dictionary from data
char * sToStringTiny(smallt *obj) MUST_CHECK
stringify a small object
void(* freeSContainerFt)(void *data)
small container holding a pointer to a buffer
void sArraySerialElementsTiny(sBytest **r, sArrayt *array)
serialize array
void * sBytesGetTiny(sBytest *bytes) MUST_CHECK
get buffer in small bytes
smallt ** sArrayGetP(sArrayt *array, uint32_t index) MUST_CHECK
get pointer to object at index
sDoublet * allocSDouble(double value) MUST_CHECK
allocate a small double
smallt * sDictElemGet(sDictElemt *dictElement) MUST_CHECK
sBytest * sTypesToBytesTiny(smallt *obj) MUST_CHECK
collect the types in an array or dictionary
char * sStringGetTiny(sStringt *string) MUST_CHECK
get string in a small string object
void sFreeTiny(smallt *obj)
free any type of small object
void sDictPushTiny(sDictt **dict, const char *key, smallt *data)
push new key-value
sBytest * sSerialTiny(smallt *obj) MUST_CHECK
serialize object to small bytes
char * sArrayToStringTiny(sArrayt *obj) MUST_CHECK
stringify array
int sArrayReverseTiny(sArrayt *array) MUST_CHECK
reverse element order
smallt * sDictGetTiny(sDictt *dict, const char *key) MUST_CHECK
get object stored at key
char * sDictToStringTiny(sDictt *obj) MUST_CHECK
stringify dictionary
smallt * sDeserialTiny(sBytest *obj) MUST_CHECK
deserialize small bytes object
smallt * sDictGet(sDictt *dict, const char *key) MUST_CHECK
get object stored at key
void sDictSerialElementsTiny(sBytest **r, sDictt *dict)
serialize dictionary
sArrayt * sArrayDuplicateTiny(sArrayt *obj) MUST_CHECK
duplicate array
sContainert * allocSContainer(void *data) MUST_CHECK
allocate a small container The container holds a pointer to a user buffer
void sDictSetP(sDictt **dict, const char *key, smallt *data)
dictionary set pointer
char * sEscape(smallt *obj) MUST_CHECK
stringify object
sBytest * sDictTypesTiny(sDictt *obj) MUST_CHECK
list first level of object types in dictionary
void sBytesPushBuffer(sBytest **bytes, void *data, uint32_t size)
push data buffer to bytes
void sDictFreeTiny(sDictt *dict)
free dictionary elements and dictionary object
void sArraySetP(sArrayt *array, uint32_t index, smallt *value)
set value at index
sBytest * sDictTypes(sDictt *obj) MUST_CHECK
list first level of object types in dictionary
sBytest * sArrayTypesTiny(sArrayt *obj) MUST_CHECK
list first level of object types in array
sBytest * sSerial(smallt *obj) MUST_CHECK
serialize object to small bytes
size_t sSizeTiny(smallt *obj)
unused function and wrong result TODO update or remove
This file has basic file, random, string, list functions.
void sArraySetTiny(sArrayt *array, uint32_t index, smallt *value)
set value at index
void * sBytesGet(sBytest *bytes) MUST_CHECK
get buffer in small bytes
void sArrayDeserialElementsTiny(sArrayt **array, char **data)
deserialize array from data
char * sDictEscapeTiny(sDictt *obj) MUST_CHECK
stringify dictionary
smallt * sArrayGetTiny(sArrayt *array, uint32_t index) MUST_CHECK
get object at index
char * sUndefinedToStringTiny(sUndefinedt *obj) MUST_CHECK
void sDictDelTiny(sDictt *dict, const char *key)
delete dictionary element
smallt * sDeserial(sBytest *obj) MUST_CHECK
deserialize small bytes object
char * sTypesTiny(smallt *obj) MUST_CHECK
get list of object types string
void sDictSetTiny(sDictt **dict, const char *key, smallt *data)
dictionary set key, value
char * sBoolToStringTiny(sBoolt *obj) MUST_CHECK
stringify bool
sUndefinedt * allocSUndefined(void) MUST_CHECK
allocate a small undefined object
smallTypet
values defining the small object types given as parameter to the isSType function ...
bool isSTypeF(smallt *obj, char sType)
is Small Type true if obj has type sType
void sFree(smallt *obj)
free non null objects
void sArrayDelRangeTiny(sArrayt *array, uint32_t start, uint32_t end)
delete range and shift elements
void sArrayDelTiny(sArrayt *array, uint32_t index)
delete element at index
sDictt * allocSDict(void) MUST_CHECK
allocate a small dict
sIntt * allocSInt(int64_t value) MUST_CHECK
allocate a small int
smallt ** sDictGetP(sDictt *dict, const char *key) MUST_CHECK
get pointer to object at key
char * sContainerToStringTiny(sContainert *obj) MUST_CHECK
sDictt * sDictDuplicateTiny(sDictt *dict) MUST_CHECK
duplicate dictionary
smallt * sArrayPopTiny(sArrayt *array) MUST_CHECK
pop object from array
void sArrayPushTiny(sArrayt **array, smallt *data)
push data to array
void sBytesPush(sBytest **bytes, char data)
push char to bytes
char * sDoubleToStringTiny(sDoublet *obj) MUST_CHECK
stringify double
void sBytesPushBufferTiny(sBytest **bytes, void *data, uint32_t size)
push data buffer to bytes
char * sArrayEscapeTiny(sArrayt *obj) MUST_CHECK
stringify array
sBytest * sArrayTypes(sArrayt *obj) MUST_CHECK
list first level of object types in array