aboutsummaryrefslogtreecommitdiffstats
path: root/src/sds.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/sds.h')
-rw-r--r--src/sds.h93
1 files changed, 56 insertions, 37 deletions
diff --git a/src/sds.h b/src/sds.h
index 3354096..501ac53 100644
--- a/src/sds.h
+++ b/src/sds.h
@@ -56,48 +56,67 @@ static inline size_t sdsavail(const sds s) {
return sdsheader(s)->free;
}
-sds sdsnewlen(const void *init, size_t initlen);
-sds sdsnew(const char *init);
-sds sdsempty(void);
-size_t sdslen(const sds s);
-sds sdsdup(const sds s);
-void sdsfree(sds s);
+/**
+ * User API function prototypes
+ */
+
+/// Initialization
+sds sdsnewlen(const void *init, size_t initlen);
+sds sdsnew(const char *init);
+sds sdsdup(const sds s);
+sds sdsempty(void);
+sds sdsfromlonglong(long long value);
+
+
+/// Querying
size_t sdsavail(const sds s);
-sds sdsgrowzero(sds s, size_t len);
-sds sdscatlen(sds s, const void *t, size_t len);
-sds sdscat(sds s, const char *t);
-sds sdscatsds(sds s, const sds t);
-sds sdscpylen(sds s, const char *t, size_t len);
-sds sdscpy(sds s, const char *t);
-
-sds sdscatvprintf(sds s, const char *fmt, va_list ap);
+size_t sdslen(const sds s);
+int sdscmp(const sds s1, const sds s2);
+
+
+/// Modification
+void sdsclear(sds s);
+sds sdsgrowzero(sds s, size_t len);
+sds sdscpylen(sds s, const char *t, size_t len);
+sds sdscpy(sds s, const char *t);
+sds sdsjoin(char **argv, int argc, char *sep, size_t seplen);
+sds sdsjoinsds(sds *argv, int argc, const char *sep, size_t seplen);
+sds sdsmapchars(sds s, const char *from, const char *to, size_t setlen);
+void sdsrange(sds s, ptrdiff_t start, ptrdiff_t end);
+void sdstolower(sds s);
+void sdstoupper(sds s);
+void sdstrim(sds s, const char *cset);
+void sdsupdatelen(sds s);
+sds *sdssplitargs(const char *line, int *argc);
+sds *sdssplitlen(const char *s, size_t len, const char *sep, size_t seplen, size_t *count);
+
+// Concatenation
+sds sdscat(sds s, const char *t);
+sds sdscatsds(sds s, const sds t);
+sds sdscatlen(sds s, const void *t, size_t len);
+sds sdscatrepr(sds s, const char *p, size_t len);
+sds sdscatvprintf(sds s, const char *fmt, va_list ap);
#ifdef __GNUC__
-sds sdscatprintf(sds s, const char *fmt, ...)
- __attribute__((format(printf, 2, 3)));
+sds sdscatprintf(sds s, const char *fmt, ...)
+ __attribute__((format(printf, 2, 3)));
#else
-sds sdscatprintf(sds s, const char *fmt, ...);
+sds sdscatprintf(sds s, const char *fmt, ...);
#endif
-void sdstrim(sds s, const char *cset);
-void sdsrange(sds s, ptrdiff_t start, ptrdiff_t end);
-void sdsupdatelen(sds s);
-void sdsclear(sds s);
-int sdscmp(const sds s1, const sds s2);
-sds *sdssplitlen(const char *s, size_t len, const char *sep, size_t seplen, size_t *count);
-void sdsfreesplitres(sds *tokens, size_t count);
-void sdstolower(sds s);
-void sdstoupper(sds s);
-sds sdsfromlonglong(long long value);
-sds sdscatrepr(sds s, const char *p, size_t len);
-sds *sdssplitargs(const char *line, int *argc);
-sds sdsmapchars(sds s, const char *from, const char *to, size_t setlen);
-sds sdsjoin(char **argv, int argc, char *sep, size_t seplen);
-sds sdsjoinsds(sds *argv, int argc, const char *sep, size_t seplen);
-
-/* Low level functions exposed to the user API */
-sds sdsMakeRoomFor(sds s, size_t addlen);
-void sdsIncrLen(sds s, size_t incr);
-sds sdsRemoveFreeSpace(sds s);
+
+/// Freeing
+void sdsfree(sds s);
+void sdsfreesplitres(sds *tokens, size_t count);
+
+
+/// Low-level functions
size_t sdsAllocSize(sds s);
+void sdsIncrLen(sds s, size_t incr);
+sds sdsMakeRoomFor(sds s, size_t addlen);
+sds sdsRemoveFreeSpace(sds s);
+
+/// Low-level helper functions
+int is_hex_digit(char c);
+int hex_digit_to_int(char c);
#endif