]> pd.if.org Git - nbds/blob - struct/nstring.c
generalize skiplist from a set to an updatable map
[nbds] / struct / nstring.c
1 #include "common.h"
2 #include "nstring.h"
3 #include "mem.h"
4
5 nstring_t *ns_alloc (const void *data, uint32_t len) {
6     nstring_t *ns = nbd_malloc(sizeof(nstring_t) + len);
7     ns->len = len;
8     memcpy(ns->data, data, len);
9     return ns;
10 }
11
12 int ns_cmp_raw (nstring_t *ns, const void *data, uint32_t len) {
13     int d = memcmp(ns->data, data, (len < ns->len) ? len : ns->len);
14     return (d == 0) ? ns->len - len : d;
15 }