| 52 | } |
| 53 | |
| 54 | size_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 |
no outgoing calls
no test coverage detected