#ifndef BUF_H_INCLUDED
#define BUF_H_INCLUDED
#include <stddef.h>
#include <unistd.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>
#include "util.h"
#include "endiantools.h"
typedef struct {
uint8_t *start;
uint8_t *cur;
uint8_t *end;
} sparkey_buf;
sparkey_returncode buf_init(sparkey_buf *buf, ptrdiff_t size);
void buf_close(sparkey_buf *buf);
uint64_t buf_size(sparkey_buf *buf);
uint64_t buf_remaining(sparkey_buf *buf);
uint64_t buf_used(sparkey_buf *buf);
sparkey_returncode buf_flushfile(sparkey_buf *buf, int fd);
sparkey_returncode buf_add(sparkey_buf *buf, int fd, const uint8_t *data, ptrdiff_t len);
#endif