MCPcopy Create free account
hub / github.com/bcndev/bytecoin / write_array_size

Function write_array_size

src/seria/KVBinaryOutputStream.cpp:54–64  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

52}
53
54size_t write_array_size(IOutputStream &s, size_t val) {
55 if (val <= 63)
56 return pack_varint<uint8_t>(s, PORTABLE_RAW_SIZE_MARK_BYTE, val);
57 if (val <= 16383)
58 return pack_varint<uint16_t>(s, PORTABLE_RAW_SIZE_MARK_WORD, val);
59 if (val <= 1073741823)
60 return pack_varint<uint32_t>(s, PORTABLE_RAW_SIZE_MARK_DWORD, val);
61 if (static_cast<uint64_t>(val) > 4611686018427387903) // Upcast to prevent warning here on 32-bit platforms
62 throw std::runtime_error("failed to pack varint - too big amount");
63 return pack_varint<uint64_t>(s, PORTABLE_RAW_SIZE_MARK_INT64, val);
64}
65
66} // namespace
67

Callers 5

end_objectMethod · 0.85
begin_arrayMethod · 0.85
write_element_prefixMethod · 0.85
seria_vMethod · 0.85
binaryMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected