tryParseAsciiInt function
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;
}