truncate method

  1. @override
Future<void> truncate(
  1. int newLength
)

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();
  });
}