mirror of
https://github.com/nlohmann/json.git
synced 2026-10-22 14:08:13 +00:00
An unsigned integer above the int64 range is a high-precision number in UBJSON: its decimal digits as a string. They were found by building a basic_json from the integer and calling dump() on it, an allocation and a serializer for 20 digits. An unsigned integer of at most 64 bits now writes its digits from a small buffer. Other integer types (wider than 64 bits) keep dump(). Instructions per call, 3000 integers above the int64 range (Linux, GCC 13, thousands): to_ubjson 3968 -> 1825, to_bjdata 180 -> 180. (to_bjdata writes these as uint64 and is unchanged.) Signed-off-by: Niels Lohmann <mail@nlohmann.me>