void write_escaped_scalar()

in src/detail/escape.cpp [32:45]


void write_escaped_scalar(encode_context &context, const char *begin, const char *end) {
  const auto buf = context.reserve(6 * (end - begin));  // 6 is the length of \u00xx
  auto ptr = buf;

  if (json_unaligned_2(begin) && (end - begin) >= 1) { write_escaped_1(ptr, begin); }
  if (json_unaligned_4(begin) && (end - begin) >= 2) { write_escaped_2(ptr, begin); }
  if (json_unaligned_8(begin) && (end - begin) >= 4) { write_escaped_4(ptr, begin); }
  while ((end - begin) >= 8) { write_escaped_8(ptr, begin); }
  if    ((end - begin) >= 4) { write_escaped_4(ptr, begin); }
  if    ((end - begin) >= 2) { write_escaped_2(ptr, begin); }
  if    ((end - begin) >= 1) { write_escaped_1(ptr, begin); }

  context.advance(ptr - buf);
}