substring method
Implementation
@override
String substring(int start, [int? end]) {
if (end != null && start > end) {
throw RangeError.range(start, 0, end, 'start');
}
var index = start;
var readDataSize = 0;
if (end != null) {
if (start > end) {
throw RangeError.range(start, 0, end, 'start');
}
if (end - start == 0) {
_lastIndex = -1;
_readDataSize = 0;
return '';
}
}
end ??= length;
final charCodes = <int>[];
for (var i = 0; index < end; i++) {
final c = _read(index);
charCodes.add(c);
index += _readDataSize;
readDataSize += _readDataSize;
}
_lastIndex = -1;
_readDataSize = readDataSize;
return String.fromCharCodes(charCodes);
}