static void _az_json_reader_consume_digits()

in sdk/src/azure/core/az_json_reader.c [418:457]


static void _az_json_reader_consume_digits(
    az_json_reader* ref_json_reader,
    az_span* token,
    int32_t* current_consumed,
    int32_t* total_consumed)
{
  int32_t counter = 0;
  az_span current = az_span_slice_to_end(*token, *current_consumed);
  while (true)
  {
    int32_t const token_size = az_span_size(current);
    uint8_t* next_byte_ptr = az_span_ptr(current);

    while (counter < token_size)
    {
      if (isdigit(*next_byte_ptr))
      {
        counter++;
        next_byte_ptr++;
      }
      else
      {
        break;
      }
    }
    if (counter == token_size
        && az_result_succeeded(_az_json_reader_get_next_buffer(ref_json_reader, token, false)))
    {
      *total_consumed += counter;
      counter = 0;
      *current_consumed = 0;
      current = *token;
      continue;
    }
    break;
  }

  *total_consumed += counter;
  *current_consumed += counter;
}