21#ifndef PROTOCORE_CBOR_H
22#define PROTOCORE_CBOR_H
40void pc_cbor_init(CborWriter *w, uint8_t *buf,
size_t cap);
43size_t pc_cbor_len(
const CborWriter *w);
46bool pc_cbor_ok(
const CborWriter *w);
48void pc_cbor_uint(CborWriter *w, uint64_t v);
49void pc_cbor_int(CborWriter *w, int64_t v);
50void pc_cbor_bytes(CborWriter *w,
const uint8_t *data,
size_t len);
51void pc_cbor_text(CborWriter *w,
const char *s);
52void pc_cbor_text_n(CborWriter *w,
const char *s,
size_t len);
53void pc_cbor_bool(CborWriter *w,
bool b);
54void pc_cbor_null(CborWriter *w);
55void pc_cbor_float(CborWriter *w,
float f);
56void pc_cbor_array(CborWriter *w,
size_t count);
57void pc_cbor_map(CborWriter *w,
size_t count);
64enum class CborType : uint8_t
88void pc_cbor_reader_init(CborReader *r,
const uint8_t *buf,
size_t len);
91CborType pc_cbor_peek(CborReader *r);
94bool pc_cbor_reader_ok(
const CborReader *r);
96bool pc_cbor_read_uint(CborReader *r, uint64_t *out);
97bool pc_cbor_read_int(CborReader *r, int64_t *out);
98bool pc_cbor_read_bool(CborReader *r,
bool *out);
99bool pc_cbor_read_null(CborReader *r);
100bool pc_cbor_read_float(CborReader *r,
float *out);
101bool pc_cbor_read_text(CborReader *r,
const char **out,
size_t *len);
102bool pc_cbor_read_bytes(CborReader *r,
const uint8_t **out,
size_t *len);
103bool pc_cbor_read_array(CborReader *r,
size_t *count);
104bool pc_cbor_read_map(CborReader *r,
size_t *count);
User-facing configuration for ProtoCore.