json_never_inline T decode_with_positive_exponent()

in include/spotify/json/codec/number.hpp [226:244]


json_never_inline T decode_with_positive_exponent(
    decode_context &context,
    const unsigned exponent,
    const char *int_beg,
    const char *int_end,
    const char *dec_beg,
    const char *dec_end) {
  T value;
  const auto num_dec_digits = static_cast<unsigned>(dec_end - dec_beg);
  if (num_dec_digits >= exponent) {
    value = decode_integer_range<T, is_positive>(context, int_beg, int_end);
    value = decode_integer_range<T, is_positive>(context, dec_beg, dec_beg + exponent, value);
  } else {
    value = decode_integer_range<T, is_positive>(context, int_beg, int_end);
    value = decode_integer_range<T, is_positive>(context, dec_beg, dec_end, value);
    value = exp_10<T, is_positive>(context, exponent - num_dec_digits, value);
  }
  return value;
}