tryParseAsciiInt function

int? tryParseAsciiInt(
  1. Uint8List data
)

Parses a short ASCII integer (SMALLINT / textual int) without a String when possible. Returns null on failure.

Implementation

int? tryParseAsciiInt(Uint8List data) {
  if (data.isEmpty || !isAsciiBytes(data)) {
    return null;
  }
  var start = 0;
  var end = data.length;
  while (start < end && _isAsciiSpace(data[start])) {
    start++;
  }
  while (end > start && _isAsciiSpace(data[end - 1])) {
    end--;
  }
  if (start >= end) {
    return null;
  }
  var i = start;
  var negative = false;
  if (data[i] == 0x2d) {
    // '-'
    negative = true;
    i++;
    if (i >= end) {
      return null;
    }
  } else if (data[i] == 0x2b) {
    // '+'
    i++;
    if (i >= end) {
      return null;
    }
  }
  var value = 0;
  var anyDigit = false;
  for (; i < end; i++) {
    final c = data[i];
    if (c < 0x30 || c > 0x39) {
      return null;
    }
    anyDigit = true;
    value = value * 10 + (c - 0x30);
  }
  if (!anyDigit) {
    return null;
  }
  return negative ? -value : value;
}