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:
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