libsheepy

C lib for handling text files, strings and json like data structure with an object oriented system
git clone https://spartatek.se/git/libsheepy.git
Log | Files | Refs | README | LICENSE

commit f7f095d9cd18c142a71ebbc3e15b61d358d9fd59
parent 3c6d0cd6736508d0a7af5ada9d8a5bada00dc38b
Author: Remy Noulin <loader2x@gmail.com>
Date:   Thu, 24 Oct 2019 15:56:36 +0200

mergeG is now synonym of appendG, add NFreeG macros synonyms of NSmashG macros to reduce the amount of terms

completion.txt            |  15 +++---
documentation.md          | 121 ++++++++++++++++++++++++++--------------------
release/libsheepyObject.h |  29 +++++++----
src/libsheepyObject.h     |  29 +++++++----
4 files changed, 118 insertions(+), 76 deletions(-)

Diffstat:
Mcompletion.txt | 15+++++++++------
Mdocumentation.md | 121+++++++++++++++++++++++++++++++++++++++++++++----------------------------------
Mrelease/libsheepyObject.h | 29++++++++++++++++++++---------
Msrc/libsheepyObject.h | 29++++++++++++++++++++---------
4 files changed, 118 insertions(+), 76 deletions(-)

diff --git a/completion.txt b/completion.txt @@ -1434,8 +1434,14 @@ getNDupG(self, returnType, key) getNumO(self, key) getNumG(self, key) appendO(self, obj) +mergeO(self, obj) +mergeG appendG(self, obj) appendNSmashO(self, obj) +mergeNSmashO(self, obj) +mergeNSmashG +appendNFreeG +mergeNFreeG appendNSmashG(self, obj) prependO(self, value) prependG(self, value) @@ -1445,6 +1451,7 @@ prependNFreeG(self, obj) shiftO(self, obj) shiftG(self, obj) shiftNSmashO(self, obj) +shiftNFreeG shiftNSmashG(self, obj) delO(self, start, end) delG(self, start, end) @@ -1547,6 +1554,8 @@ copyRngG(self, start, end) insertO(self, index, toInsert) insertG(self, index, toInsert) insertNSmashO(self, index, toInsert) +insertNFreeO +insertNFreeG insertNSmashG(self, index, toInsert) injectG(self, index, value) injectNFreeG(self, index, value) @@ -2321,10 +2330,6 @@ keysSmallStringO(self) keysSmallStringG valuesO(self) valuesG -mergeO(self, smallDict) -mergeG -mergeNSmashO(self, smallDict) -mergeNSmashG icEqualBaseO(self, p2) icEqualBaseG iterStartKeyO(self) @@ -2805,8 +2810,6 @@ icEndsWithSmallJsonO(self, string) icEndsWithSmallJsonG icCountSmallJsonO(self, string) icCountSmallJsonG -insertNFreeO(self, index, toInsert) -insertNFreeG splitSmallJsonSO(self, delim) splitSmallJsonSG splitSSmallStringO(self, delim) diff --git a/documentation.md b/documentation.md @@ -15134,8 +15134,14 @@ getNDupG(self, returnType, key) getNumO(self, key) getNumG(self, key) appendO(self, obj) +mergeO(self, obj) +mergeG appendG(self, obj) appendNSmashO(self, obj) +mergeNSmashO(self, obj) +mergeNSmashG +appendNFreeG +mergeNFreeG appendNSmashG(self, obj) prependO(self, value) prependG(self, value) @@ -15145,6 +15151,7 @@ prependNFreeG(self, obj) shiftO(self, obj) shiftG(self, obj) shiftNSmashO(self, obj) +shiftNFreeG shiftNSmashG(self, obj) delO(self, start, end) delG(self, start, end) @@ -15247,6 +15254,8 @@ copyRngG(self, start, end) insertO(self, index, toInsert) insertG(self, index, toInsert) insertNSmashO(self, index, toInsert) +insertNFreeO +insertNFreeG insertNSmashG(self, index, toInsert) injectG(self, index, value) injectNFreeG(self, index, value) @@ -16021,10 +16030,6 @@ keysSmallStringO(self) keysSmallStringG valuesO(self) valuesG -mergeO(self, smallDict) -mergeG -mergeNSmashO(self, smallDict) -mergeNSmashG icEqualBaseO(self, p2) icEqualBaseG iterStartKeyO(self) @@ -16505,8 +16510,6 @@ icEndsWithSmallJsonO(self, string) icEndsWithSmallJsonG icCountSmallJsonO(self, string) icCountSmallJsonG -insertNFreeO(self, index, toInsert) -insertNFreeG splitSmallJsonSO(self, delim) splitSmallJsonSG splitSSmallStringO(self, delim) @@ -18970,6 +18973,17 @@ In the list below, the generics start with '#define'. They are followed with the class methods and generic wrapper function prototypes from the generic. ``` +/* + * initialize object (on stack or on heap) + * + * Example: + * // on stack + * smallArrayt array; + * initiateG(&array); + * // heap + * smallArrayt *array; + * initiateG(&array); + */ #define initiateG(self) /* * use rtSmallArrayt and rtSmallDictt for arrays and dictionaries @@ -46498,6 +46512,20 @@ double getNumAtSmallJsonG (smallJsont *self, intmax_t index); double getNumAtSmallJson (smallJsont *self, intmax_t index); double getNumAtSmallJsonG (smallJsont *self, intmax_t index); #define appendO(self, obj) (self)->f->append(self, obj) +#define mergeO(self, obj) (self)->f->merge(self, obj) +#define mergeG appendG +/* + * merge override - already existing values are replaced + */ +smallDictt* mergeSmallDict (smallDictt *self, smallDictt *smallDict); +/* + * merge override - already existing values are replaced + */ +smallJsont* mergeSmallJson (smallJsont *self, smallJsont *smallJson); +/* + * merge override - already existing values are replaced + */ +smallJsont* mergeSmallJson (smallJsont *self, smallJsont *smallJson); #define appendG(self, obj) /* * merge override - already existing values are replaced @@ -46766,6 +46794,22 @@ smallStringt* appendCharSmallStringG (smallStringt *self, char c); smallStringt* appendSSmallString (smallStringt *self, char *string); smallStringt* appendSSmallStringG (smallStringt *self, const char *string); #define appendNSmashO(self, obj) (self)->f->appendNSmash(self, obj) +#define mergeNSmashO(self, obj) (self)->f->mergeNSmash(self, obj) +#define mergeNSmashG appendNSmashG +/* + * merge override - already existing values are replaced + */ +smallDictt* mergeNSmashSmallDict (smallDictt *self, smallDictt *smallDict); +/* + * merge override - already existing values are replaced + */ +smallJsont* mergeNSmashSmallJson (smallJsont *self, smallJsont *smallJson); +/* + * merge override - already existing values are replaced + */ +smallJsont* mergeNSmashSmallJson (smallJsont *self, smallJsont *smallJson); +#define appendNFreeG appendNSmashG +#define mergeNFreeG appendNSmashG #define appendNSmashG(self, obj) /* * merge override - already existing values are replaced @@ -49314,6 +49358,7 @@ smallStringt* prependCharSmallStringG (smallStringt *self, char c); smallStringt* prependSSmallString (smallStringt *self, char *string); smallStringt* prependSSmallStringG (smallStringt *self, const char *string); #define shiftNSmashO(self, obj) (self)->f->shiftNSmash(self, obj) +#define shiftNFreeG shiftNSmashG #define shiftNSmashG(self, obj) /* * merge override - already existing values are replaced @@ -52929,6 +52974,24 @@ smallStringt* copySmallStringG(smallStringt *self, intmax_t start, intmax_t end) #define insertO(self, index, toInsert) (self)->f->insert(self, index, toInsert) #define insertG(self, index, toInsert) #define insertNSmashO(self, index, toInsert) (self)->f->insertNSmash(self, index, toInsert) +#define insertNFreeO insertNSmashO +#define insertNFreeG insertNSmashG +/* + * insert smallString in self at index + * + * return smallString with toInsert at index + * negative indexes are allowed + * index -1 is the end of the array and is equivalent to index len + * + * \param + * index in smallString + * \param + * toInsert smallString + * \return + * self smallString + * NULL unchanged smallString when smallString is NULL or invalid index + */ +smallStringt* insertNFreeSmallString (smallStringt *self, intmax_t index, smallStringt *toInsert); #define insertNSmashG(self, index, toInsert) #define injectG(self, index, value) #define injectNFreeG(self, index, value) @@ -67652,34 +67715,6 @@ smallArrayt* valuesSmallJson (smallJsont *self); * list values */ smallArrayt* valuesSmallJson (smallJsont *self); -#define mergeO(self, smallDict) (self)->f->merge(self, smallDict) -#define mergeG mergeO -/* - * merge override - already existing values are replaced - */ -smallDictt* mergeSmallDict (smallDictt *self, smallDictt *smallDict); -/* - * merge override - already existing values are replaced - */ -smallJsont* mergeSmallJson (smallJsont *self, smallJsont *smallJson); -/* - * merge override - already existing values are replaced - */ -smallJsont* mergeSmallJson (smallJsont *self, smallJsont *smallJson); -#define mergeNSmashO(self, smallDict) (self)->f->mergeNSmash(self, smallDict) -#define mergeNSmashG mergeNSmashO -/* - * merge override - already existing values are replaced - */ -smallDictt* mergeNSmashSmallDict (smallDictt *self, smallDictt *smallDict); -/* - * merge override - already existing values are replaced - */ -smallJsont* mergeNSmashSmallJson (smallJsont *self, smallJsont *smallJson); -/* - * merge override - already existing values are replaced - */ -smallJsont* mergeNSmashSmallJson (smallJsont *self, smallJsont *smallJson); #define icEqualBaseO(self, p2) (self)->f->icEqualBase(self, p2) #define icEqualBaseG icEqualBaseO #define iterStartKeyO(self) (self)->f->iterStartKey(self) @@ -73991,24 +74026,6 @@ bool icEndsWithSmallJsonSmallString (smallStringt *self, smallJsont *string); * -1 when there is an error */ ssize_t icCountSmallJsonSmallString (smallStringt *self, smallJsont *string); -#define insertNFreeO(self, index, toInsert) (self)->f->insertNFree(self, index, toInsert) -#define insertNFreeG insertNFreeO -/* - * insert smallString in self at index - * - * return smallString with toInsert at index - * negative indexes are allowed - * index -1 is the end of the array and is equivalent to index len - * - * \param - * index in smallString - * \param - * toInsert smallString - * \return - * self smallString - * NULL unchanged smallString when smallString is NULL or invalid index - */ -smallStringt* insertNFreeSmallString (smallStringt *self, intmax_t index, smallStringt *toInsert); #define splitSmallJsonSO(self, delim) (self)->f->splitSmallJsonS(self, delim) #define splitSmallJsonSG splitSmallJsonSO /* diff --git a/release/libsheepyObject.h b/release/libsheepyObject.h @@ -101,6 +101,17 @@ static const bool checkObjectTypes = true; // Generics +/** + * initialize object (on stack or on heap) + * + * Example: + * // on stack + * smallArrayt array; + * initiateG(&array); + * // heap + * smallArrayt *array; + * initiateG(&array); + */ #define initiateG(self) _Generic((self), \ smallArrayt*: initiateSmallArray, \ smallBoolt*: initiateSmallBool, \ @@ -2414,6 +2425,8 @@ void finishManyOF(void *paramType, ...); )(self, key) #define appendO(self, obj) (self)->f->append(self, obj) +#define mergeO(self, obj) (self)->f->merge(self, obj) +#define mergeG appendG #define appendG(self, obj) _Generic((self), \ smallDictt*: _Generic(obj, \ smallDictt*: mergeSmallDictG, \ @@ -2466,6 +2479,10 @@ void finishManyOF(void *paramType, ...); )(self, obj) #define appendNSmashO(self, obj) (self)->f->appendNSmash(self, obj) +#define mergeNSmashO(self, obj) (self)->f->mergeNSmash(self, obj) +#define mergeNSmashG appendNSmashG +#define appendNFreeG appendNSmashG +#define mergeNFreeG appendNSmashG #define appendNSmashG(self, obj) _Generic((self), \ smallDictt*: _Generic(obj, \ smallDictt*: mergeNSmashSmallDictG, \ @@ -2707,6 +2724,7 @@ void finishManyOF(void *paramType, ...); )(self, obj) #define shiftNSmashO(self, obj) (self)->f->shiftNSmash(self, obj) +#define shiftNFreeG shiftNSmashG #define shiftNSmashG(self, obj) _Generic((self), \ smallDictt*: _Generic(obj, \ smallDictt*: mergeNSmashSmallDictG, \ @@ -5061,6 +5079,8 @@ void finishManyOF(void *paramType, ...); )(self, index, toInsert) #define insertNSmashO(self, index, toInsert) (self)->f->insertNSmash(self, index, toInsert) +#define insertNFreeO insertNSmashO +#define insertNFreeG insertNSmashG #define insertNSmashG(self, index, toInsert) _Generic((self), \ char *: _Generic((toInsert), \ char *: insertNFreeS, \ @@ -7880,12 +7900,6 @@ void finishManyOF(void *paramType, ...); #define valuesO(self) (self)->f->values(self) #define valuesG valuesO -#define mergeO(self, smallDict) (self)->f->merge(self, smallDict) -#define mergeG mergeO - -#define mergeNSmashO(self, smallDict) (self)->f->mergeNSmash(self, smallDict) -#define mergeNSmashG mergeNSmashO - #define icEqualBaseO(self, p2) (self)->f->icEqualBase(self, p2) #define icEqualBaseG icEqualBaseO @@ -8606,9 +8620,6 @@ void finishManyOF(void *paramType, ...); #define icCountSmallJsonO(self, string) (self)->f->icCountSmallJson(self, string) #define icCountSmallJsonG icCountSmallJsonO -#define insertNFreeO(self, index, toInsert) (self)->f->insertNFree(self, index, toInsert) -#define insertNFreeG insertNFreeO - #define splitSmallJsonSO(self, delim) (self)->f->splitSmallJsonS(self, delim) #define splitSmallJsonSG splitSmallJsonSO diff --git a/src/libsheepyObject.h b/src/libsheepyObject.h @@ -101,6 +101,17 @@ static const bool checkObjectTypes = true; // Generics +/** + * initialize object (on stack or on heap) + * + * Example: + * // on stack + * smallArrayt array; + * initiateG(&array); + * // heap + * smallArrayt *array; + * initiateG(&array); + */ #define initiateG(self) _Generic((self), \ smallArrayt*: initiateSmallArray, \ smallBoolt*: initiateSmallBool, \ @@ -2414,6 +2425,8 @@ void finishManyOF(void *paramType, ...); )(self, key) #define appendO(self, obj) (self)->f->append(self, obj) +#define mergeO(self, obj) (self)->f->merge(self, obj) +#define mergeG appendG #define appendG(self, obj) _Generic((self), \ smallDictt*: _Generic(obj, \ smallDictt*: mergeSmallDictG, \ @@ -2466,6 +2479,10 @@ void finishManyOF(void *paramType, ...); )(self, obj) #define appendNSmashO(self, obj) (self)->f->appendNSmash(self, obj) +#define mergeNSmashO(self, obj) (self)->f->mergeNSmash(self, obj) +#define mergeNSmashG appendNSmashG +#define appendNFreeG appendNSmashG +#define mergeNFreeG appendNSmashG #define appendNSmashG(self, obj) _Generic((self), \ smallDictt*: _Generic(obj, \ smallDictt*: mergeNSmashSmallDictG, \ @@ -2707,6 +2724,7 @@ void finishManyOF(void *paramType, ...); )(self, obj) #define shiftNSmashO(self, obj) (self)->f->shiftNSmash(self, obj) +#define shiftNFreeG shiftNSmashG #define shiftNSmashG(self, obj) _Generic((self), \ smallDictt*: _Generic(obj, \ smallDictt*: mergeNSmashSmallDictG, \ @@ -5061,6 +5079,8 @@ void finishManyOF(void *paramType, ...); )(self, index, toInsert) #define insertNSmashO(self, index, toInsert) (self)->f->insertNSmash(self, index, toInsert) +#define insertNFreeO insertNSmashO +#define insertNFreeG insertNSmashG #define insertNSmashG(self, index, toInsert) _Generic((self), \ char *: _Generic((toInsert), \ char *: insertNFreeS, \ @@ -7880,12 +7900,6 @@ void finishManyOF(void *paramType, ...); #define valuesO(self) (self)->f->values(self) #define valuesG valuesO -#define mergeO(self, smallDict) (self)->f->merge(self, smallDict) -#define mergeG mergeO - -#define mergeNSmashO(self, smallDict) (self)->f->mergeNSmash(self, smallDict) -#define mergeNSmashG mergeNSmashO - #define icEqualBaseO(self, p2) (self)->f->icEqualBase(self, p2) #define icEqualBaseG icEqualBaseO @@ -8606,9 +8620,6 @@ void finishManyOF(void *paramType, ...); #define icCountSmallJsonO(self, string) (self)->f->icCountSmallJson(self, string) #define icCountSmallJsonG icCountSmallJsonO -#define insertNFreeO(self, index, toInsert) (self)->f->insertNFree(self, index, toInsert) -#define insertNFreeG insertNFreeO - #define splitSmallJsonSO(self, delim) (self)->f->splitSmallJsonS(self, delim) #define splitSmallJsonSG splitSmallJsonSO