truncate method
Changes the logical length.
Implementation
@override
Future<void> truncate(int newLength) async {
_checkWritable();
if (newLength < 0) throw RangeError.value(newLength, 'newLength');
if (newLength > kMaxLogicalLength) {
throw RangeError.value(newLength, 'newLength');
}
return _serialize(() async {
final current = _manifest.logicalLength;
if (newLength == current) return;
if (newLength < current) {
await _shrink(newLength);
} else {
_growTo(newLength);
}
await _persist();
});
}