Tells a sink that holds its data the size it will reach, so it can take
the room in one go rather than doubling into it. A sink that writes
through has nothing to reserve and ignores it
Append count bytes copied from distance bytes before the current end
of the stream (an LZ77 back-reference, as used by Inflate). Correctly
handles overlapping copies where count > distance (e.g. RLE-style
runs), reproducing the repeating pattern.
Writes bytes[start...end]. A sink that passes its data to something
outside Dart takes the range rather than a view of it, since a view is
copied on the way out