51#ifndef PROTOCORE_PROTOBUF_H
52#define PROTOCORE_PROTOBUF_H
58#if PROTOCORE_ENABLE_PROTOBUF
61#define PROTOCORE_PROTOBUF_WT_VARINT 0
62#define PROTOCORE_PROTOBUF_WT_I64 1
63#define PROTOCORE_PROTOBUF_WT_LEN 2
64#define PROTOCORE_PROTOBUF_WT_SGROUP 3
65#define PROTOCORE_PROTOBUF_WT_EGROUP 4
66#define PROTOCORE_PROTOBUF_WT_I32 5
69#define PROTOCORE_PROTOBUF_VARINT_MAX 10
71#ifndef PROTOCORE_PROTOBUF_SLOTS
73#define PROTOCORE_PROTOBUF_SLOTS 4
86 uint32_t field_number;
115 uint32_t field_number;
166 ProtobufWriterArgs writer;
168 ProtobufValueArgs value;
169 ProtobufSourceArgs source;
177 ProtobufRecord record;
181extern ProtobufVars ProtobufV;
186 void (*
const writer_open)(uint8_t *work);
187 void (*
const write_varint)(uint8_t *work);
188 void (*
const write_tag)(uint8_t *work);
189 void (*
const write_uint64)(uint8_t *work);
190 void (*
const write_int64)(uint8_t *work);
191 void (*
const write_sint64)(uint8_t *work);
192 void (*
const write_bool)(uint8_t *work);
193 void (*
const write_fixed32)(uint8_t *work);
194 void (*
const write_fixed64)(uint8_t *work);
195 void (*
const write_float)(uint8_t *work);
196 void (*
const write_double)(uint8_t *work);
197 void (*
const write_bytes)(uint8_t *work);
198 void (*
const write_string)(uint8_t *work);
199 void (*
const writer_finish)(uint8_t *work);
200 void (*
const reader_open)(uint8_t *work);
201 void (*
const read_varint)(uint8_t *work);
202 void (*
const read_record)(uint8_t *work);
203 void (*
const zigzag64)(uint8_t *work);
204 void (*
const zigzag32)(uint8_t *work);
205 void (*
const float_bits)(uint8_t *work);
206 void (*
const double_bits)(uint8_t *work);
211void protocore_protobuf_writer_open(uint8_t *work);
212void protocore_protobuf_write_varint(uint8_t *work);
213void protocore_protobuf_write_tag(uint8_t *work);
214void protocore_protobuf_write_uint64(uint8_t *work);
215void protocore_protobuf_write_int64(uint8_t *work);
216void protocore_protobuf_write_sint64(uint8_t *work);
217void protocore_protobuf_write_bool(uint8_t *work);
218void protocore_protobuf_write_fixed32(uint8_t *work);
219void protocore_protobuf_write_fixed64(uint8_t *work);
220void protocore_protobuf_write_float(uint8_t *work);
221void protocore_protobuf_write_double(uint8_t *work);
222void protocore_protobuf_write_bytes(uint8_t *work);
223void protocore_protobuf_write_string(uint8_t *work);
224void protocore_protobuf_writer_finish(uint8_t *work);
225void protocore_protobuf_reader_open(uint8_t *work);
226void protocore_protobuf_read_varint(uint8_t *work);
227void protocore_protobuf_read_record(uint8_t *work);
228void protocore_protobuf_zigzag64(uint8_t *work);
229void protocore_protobuf_zigzag32(uint8_t *work);
230void protocore_protobuf_float_bits(uint8_t *work);
231void protocore_protobuf_double_bits(uint8_t *work);
237static const ProtobufNs Protobuf __attribute__((unused)) = {
238 .writer_open = protocore_protobuf_writer_open,
239 .write_varint = protocore_protobuf_write_varint,
240 .write_tag = protocore_protobuf_write_tag,
241 .write_uint64 = protocore_protobuf_write_uint64,
242 .write_int64 = protocore_protobuf_write_int64,
243 .write_sint64 = protocore_protobuf_write_sint64,
244 .write_bool = protocore_protobuf_write_bool,
245 .write_fixed32 = protocore_protobuf_write_fixed32,
246 .write_fixed64 = protocore_protobuf_write_fixed64,
247 .write_float = protocore_protobuf_write_float,
248 .write_double = protocore_protobuf_write_double,
249 .write_bytes = protocore_protobuf_write_bytes,
250 .write_string = protocore_protobuf_write_string,
251 .writer_finish = protocore_protobuf_writer_finish,
252 .reader_open = protocore_protobuf_reader_open,
253 .read_varint = protocore_protobuf_read_varint,
254 .read_record = protocore_protobuf_read_record,
255 .zigzag64 = protocore_protobuf_zigzag64,
256 .zigzag32 = protocore_protobuf_zigzag32,
257 .float_bits = protocore_protobuf_float_bits,
258 .double_bits = protocore_protobuf_double_bits,
270uint8_t *protocore_protobuf_span(
void);
#define PROTOCORE_BEGIN_DECLS
Give a header's declarations C linkage, so their symbol names carry no parameter types.
_Bool proto_bool
The truth value.
#define PROTOCORE_END_DECLS