28#ifndef DETERMINISTICESPASYNCWEBSERVER_MSGPACK_H
29#define DETERMINISTICESPASYNCWEBSERVER_MSGPACK_H
35#if DETWS_ENABLE_MSGPACK
47void msgpack_init(MsgpackWriter *w, uint8_t *buf,
size_t cap);
50size_t msgpack_len(
const MsgpackWriter *w);
53bool msgpack_ok(
const MsgpackWriter *w);
55void msgpack_uint(MsgpackWriter *w, uint64_t v);
56void msgpack_int(MsgpackWriter *w, int64_t v);
57void msgpack_bytes(MsgpackWriter *w,
const uint8_t *data,
size_t len);
58void msgpack_str(MsgpackWriter *w,
const char *s);
59void msgpack_str_n(MsgpackWriter *w,
const char *s,
size_t len);
60void msgpack_bool(MsgpackWriter *w,
bool b);
61void msgpack_nil(MsgpackWriter *w);
62void msgpack_float(MsgpackWriter *w,
float f);
63void msgpack_array(MsgpackWriter *w,
size_t count);
64void msgpack_map(MsgpackWriter *w,
size_t count);
71enum class MsgpackType : uint8_t
73 MSGPACK_TYPE_UINT = 0,
95void msgpack_reader_init(MsgpackReader *r,
const uint8_t *buf,
size_t len);
98MsgpackType msgpack_peek(MsgpackReader *r);
101bool msgpack_reader_ok(
const MsgpackReader *r);
103bool msgpack_read_uint(MsgpackReader *r, uint64_t *out);
104bool msgpack_read_int(MsgpackReader *r, int64_t *out);
105bool msgpack_read_bool(MsgpackReader *r,
bool *out);
106bool msgpack_read_nil(MsgpackReader *r);
107bool msgpack_read_float(MsgpackReader *r,
float *out);
108bool msgpack_read_str(MsgpackReader *r,
const char **out,
size_t *len);
109bool msgpack_read_bytes(MsgpackReader *r,
const uint8_t **out,
size_t *len);
110bool msgpack_read_array(MsgpackReader *r,
size_t *count);
111bool msgpack_read_map(MsgpackReader *r,
size_t *count);
User-facing configuration for DeterministicESPAsyncWebServer.