#include "upb/encode.h"
#include <setjmp.h>
#include <string.h>
#include "upb/extension_registry.h"
#include "upb/msg_internal.h"
#include "upb/upb.h"
#include "upb/port_def.inc"
#define UPB_PB_VARINT_MAX_LEN …
UPB_NOINLINE
static size_t encode_varint64(uint64_t val, char* buf) { … }
static uint32_t encode_zz32(int32_t n) { … }
static uint64_t encode_zz64(int64_t n) { … }
upb_encstate;
static size_t upb_roundup_pow2(size_t bytes) { … }
UPB_NORETURN static void encode_err(upb_encstate* e, upb_EncodeStatus s) { … }
UPB_NOINLINE
static void encode_growbuffer(upb_encstate* e, size_t bytes) { … }
UPB_FORCEINLINE
static void encode_reserve(upb_encstate* e, size_t bytes) { … }
static void encode_bytes(upb_encstate* e, const void* data, size_t len) { … }
static void encode_fixed64(upb_encstate* e, uint64_t val) { … }
static void encode_fixed32(upb_encstate* e, uint32_t val) { … }
UPB_NOINLINE
static void encode_longvarint(upb_encstate* e, uint64_t val) { … }
UPB_FORCEINLINE
static void encode_varint(upb_encstate* e, uint64_t val) { … }
static void encode_double(upb_encstate* e, double d) { … }
static void encode_float(upb_encstate* e, float d) { … }
static void encode_tag(upb_encstate* e, uint32_t field_number,
uint8_t wire_type) { … }
static void encode_fixedarray(upb_encstate* e, const upb_Array* arr,
size_t elem_size, uint32_t tag) { … }
static void encode_message(upb_encstate* e, const upb_Message* msg,
const upb_MiniTable* m, size_t* size);
static void encode_scalar(upb_encstate* e, const void* _field_mem,
const upb_MiniTable_Sub* subs,
const upb_MiniTable_Field* f) { … }
static void encode_array(upb_encstate* e, const upb_Message* msg,
const upb_MiniTable_Sub* subs,
const upb_MiniTable_Field* f) { … }
static void encode_mapentry(upb_encstate* e, uint32_t number,
const upb_MiniTable* layout,
const upb_MapEntry* ent) { … }
static void encode_map(upb_encstate* e, const upb_Message* msg,
const upb_MiniTable_Sub* subs,
const upb_MiniTable_Field* f) { … }
static bool encode_shouldencode(upb_encstate* e, const upb_Message* msg,
const upb_MiniTable_Sub* subs,
const upb_MiniTable_Field* f) { … }
static void encode_field(upb_encstate* e, const upb_Message* msg,
const upb_MiniTable_Sub* subs,
const upb_MiniTable_Field* field) { … }
static void encode_msgset_item(upb_encstate* e,
const upb_Message_Extension* ext) { … }
static void encode_message(upb_encstate* e, const upb_Message* msg,
const upb_MiniTable* m, size_t* size) { … }
upb_EncodeStatus upb_Encode(const void* msg, const upb_MiniTable* l,
int options, upb_Arena* arena, char** buf,
size_t* size) { … }