MCPcopy Create free account
hub / github.com/Santroller/Santroller / encode_basic_field

Function encode_basic_field

lib/nanopb/pb_encode.c:362–403  ·  view source on GitHub ↗

Encode a field with static or pointer allocation, i.e. one whose data * is available to the encoder directly. */

Source from the content-addressed store, hash-verified

360/* Encode a field with static or pointer allocation, i.e. one whose data
361 * is available to the encoder directly. */
362static bool checkreturn encode_basic_field(pb_ostream_t *stream, const pb_field_iter_t *field)
363{
364 if (!field->pData)
365 {
366 /* Missing pointer field */
367 return true;
368 }
369
370 if (!pb_encode_tag_for_field(stream, field))
371 return false;
372
373 switch (PB_LTYPE(field->type))
374 {
375 case PB_LTYPE_BOOL:
376 return pb_enc_bool(stream, field);
377
378 case PB_LTYPE_VARINT:
379 case PB_LTYPE_UVARINT:
380 case PB_LTYPE_SVARINT:
381 return pb_enc_varint(stream, field);
382
383 case PB_LTYPE_FIXED32:
384 case PB_LTYPE_FIXED64:
385 return pb_enc_fixed(stream, field);
386
387 case PB_LTYPE_BYTES:
388 return pb_enc_bytes(stream, field);
389
390 case PB_LTYPE_STRING:
391 return pb_enc_string(stream, field);
392
393 case PB_LTYPE_SUBMESSAGE:
394 case PB_LTYPE_SUBMSG_W_CB:
395 return pb_enc_submessage(stream, field);
396
397 case PB_LTYPE_FIXED_LENGTH_BYTES:
398 return pb_enc_fixed_length_bytes(stream, field);
399
400 default:
401 PB_RETURN_ERROR(stream, "invalid field type");
402 }
403}
404
405/* Encode a field with callback semantics. This means that a user function is
406 * called to provide and encode the actual data. */

Callers 2

encode_arrayFunction · 0.85
encode_fieldFunction · 0.85

Calls 8

pb_encode_tag_for_fieldFunction · 0.85
pb_enc_boolFunction · 0.85
pb_enc_varintFunction · 0.85
pb_enc_fixedFunction · 0.85
pb_enc_bytesFunction · 0.85
pb_enc_stringFunction · 0.85
pb_enc_submessageFunction · 0.85

Tested by

no test coverage detected