A replacement for the Open Dylan <sequence-stream> classes.
This module is motivated by various issues with <sequence-stream>
in Open
Dylan's IO library. It provides implementations for stream methods that act as
described in the Open Dylan Streams Module documentation.
If possible, these classes use the contents:
initialization argument as the
backing store; if not, they use a copy. The backing store will be a general
instance of <vector>
and will be a <stretchy-vector>
if and only if the
stream is writable. This differs from the normal <sequence-stream>
class,
in which using a <stretchy-vector>
as the contents:
initialization
argument guarantees that all changes to the <stretchy-vector>
are reflected
in the <sequence-stream>
and vice versa.
When a writable <sequence-stream>
grows its backing store, it uses the
filler element specified by the fill:
initialization argument.
This class supports a position-offset:
initialization argument that sets
the effective stream position at the first element of the stream. This allows
sequence streams to act as a subset of another, larger stream. The
initialization argument defaults to 0
.