void chunk_split(chunk_t chunk, const char *mode, ...);
/**
+ * Write the binary contents of a chunk_t to a file
+ */
+bool chunk_write(chunk_t chunk, const char *path, const char *label, mode_t mask, bool force);
+
+/**
* Free contents of a chunk
*/
void chunk_free(chunk_t *chunk);
#define chunk_from_buf(str) { str, sizeof(str) }
/**
+ * Initialize a chunk to point to a thing
+ */
+#define chunk_from_thing(thing) chunk_create((char*)&(thing), sizeof(thing))
+
+/**
* Allocate a chunk on the heap
*/
#define chunk_alloc(bytes) chunk_create(malloc(bytes), bytes)
chunk_t chunk_skip(chunk_t chunk, size_t bytes);
/**
+ * Compare two chunks, returns zero if a equals b
+ * or negative/positive if a is small/greater than b
+ */
+int chunk_compare(chunk_t a, chunk_t b);
+
+/**
* Compare two chunks for equality,
* NULL chunks are never equal.
*/