27#ifndef PROTOCORE_PROTOBUF_H
28#define PROTOCORE_PROTOBUF_H
54void pc_pb_writer_init(PbWriter *w, uint8_t *buf,
size_t cap);
57bool pc_pb_write_varint(PbWriter *w, uint64_t v);
60bool pc_pb_write_tag(PbWriter *w, uint32_t field, uint8_t wire_type);
62bool pc_pb_uint64(PbWriter *w, uint32_t field, uint64_t v);
63bool pc_pb_int64(PbWriter *w, uint32_t field, int64_t v);
64bool pc_pb_sint64(PbWriter *w, uint32_t field, int64_t v);
65bool pc_pb_bool(PbWriter *w, uint32_t field,
bool v);
66bool pc_pb_fixed32(PbWriter *w, uint32_t field, uint32_t v);
67bool pc_pb_fixed64(PbWriter *w, uint32_t field, uint64_t v);
68bool pc_pb_float(PbWriter *w, uint32_t field,
float v);
69bool pc_pb_double(PbWriter *w, uint32_t field,
double v);
70bool pc_pb_bytes(PbWriter *w, uint32_t field,
const uint8_t *data,
size_t len);
71bool pc_pb_string(PbWriter *w, uint32_t field,
const char *s);
74size_t pc_pb_writer_finish(PbWriter *w);
81 uint32_t field_number;
89bool pc_pb_read_varint(
const uint8_t *buf,
size_t len,
size_t *pos, uint64_t *out);
95bool pc_pb_read_field(
const uint8_t *buf,
size_t len,
size_t *pos, PbField *out);
98int64_t pc_pb_zigzag64(uint64_t v);
99int32_t pc_pb_zigzag32(uint32_t v);
100float pc_pb_float_bits(uint32_t bits);
101double pc_pb_double_bits(uint64_t bits);
User-facing configuration for ProtoCore.