String substring(int start, [int? end]) { return _rope.slice( start: BigInt.from(start), end: BigInt.from(end ?? length), ); }