-: (stream-contents-by-length) ( stream len -- seq )
- dup rot
- [ (new-sequence-for-stream) ]
- [ [ stream-read-unsafe ] keepd resize ] bi ; inline
-
-: (stream-contents-by-block) ( stream -- seq )
- [ [ ] collector [ each-stream-block ] dip { } like ]
- [ stream-exemplar concat-as ] bi ; inline
-
-: (stream-contents-by-length-or-block) ( stream -- seq )
- dup stream-length
- [ (stream-contents-by-length) ]
- [ (stream-contents-by-block) ] if* ; inline
-
-: (stream-contents-by-element) ( stream -- seq )
- [
- [ [ stream-read1 dup ] curry [ ] ]
- [ stream-exemplar produce-as nip ] bi
- ] with-disposal ; inline
-