17 os << std::boolalpha << value << std::noboolalpha;
22 if (std::isnan(value))
26 else if (std::isinf(value))
34 double intPart = 1e16;
35 const double fractPart = std::modf(value, &intPart);
37 if (fractPart == 0.0 && intPart > -1e16 && intPart < 1e16)
39 os << std::fixed << std::setprecision(1) << value << std::defaultfloat;
43 os << std::setprecision(15) << value << std::defaultfloat;
50 static const std::array<char, 17> HEX = {
"0123456789abcdef"};
83 if (static_cast<uint8_t>(ch) <= 0x1F)
89 os.put(HEX[static_cast<uint8_t>(static_cast<uint8_t>(ch) >> 4U) & 0xFU]);
90 os.put(HEX[static_cast<uint8_t>(ch) & 0xFU]);
static void encodeString(std::ostream &os, StringView value)
static void encodeBool(std::ostream &os, bool value)
static void encodeFloatingPoint(std::ostream &os, double value)
static void encodeNull(std::ostream &os)