6 nstring_t *ns_alloc (uint32_t len) {
7 nstring_t *ns = nbd_malloc(sizeof(nstring_t) + len);
12 int ns_cmp (const nstring_t *ns1, const nstring_t *ns2) {
13 int d = memcmp(ns1->data, ns2->data, (ns1->len < ns2->len) ? ns1->len : ns1->len);
14 return (d == 0) ? ns1->len - ns2->len : d;
17 uint32_t ns_hash (const nstring_t *ns) {
18 return murmur32(ns->data, ns->len);
21 nstring_t *ns_dup (const nstring_t *ns1) {
22 nstring_t *ns2 = ns_alloc(ns1->len);
23 memcpy(ns2->data, ns1->data, ns1->len);