]> pd.if.org Git - nbds/blobdiff - map/nstring.c
generic interface for map-like data structures
[nbds] / map / nstring.c
diff --git a/map/nstring.c b/map/nstring.c
new file mode 100644 (file)
index 0000000..db35ee1
--- /dev/null
@@ -0,0 +1,15 @@
+#include "common.h"
+#include "nstring.h"
+#include "mem.h"
+
+nstring_t *ns_alloc (const void *data, uint32_t len) {
+    nstring_t *ns = nbd_malloc(sizeof(nstring_t) + len);
+    ns->len = len;
+    memcpy(ns->data, data, len);
+    return ns;
+}
+
+int ns_cmp_raw (nstring_t *ns, const void *data, uint32_t len) {
+    int d = memcmp(ns->data, data, (len < ns->len) ? len : ns->len);
+    return (d == 0) ? ns->len - len : d;
+}