io: nab io.streams.peek's stream-exemplar-growable
Rename stream-element-examplar to stream-exemplar to match.db4
parent
59f0b93290
commit
d54824cb40
|
@ -81,14 +81,17 @@ SYMBOL: error-stream
|
||||||
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
||||||
: (stream-element-exemplar) ( type -- exemplar )
|
: stream-exemplar ( stream -- exemplar )
|
||||||
{
|
stream-element-type {
|
||||||
{ +byte+ [ B{ } ] }
|
{ +byte+ [ B{ } ] }
|
||||||
{ +character+ [ "" ] }
|
{ +character+ [ "" ] }
|
||||||
} case ; inline
|
} case ; inline
|
||||||
|
|
||||||
: stream-element-exemplar ( stream -- exemplar )
|
: stream-exemplar-growable ( stream -- exemplar )
|
||||||
stream-element-type (stream-element-exemplar) ; inline
|
stream-element-type {
|
||||||
|
{ +byte+ [ BV{ } ] }
|
||||||
|
{ +character+ [ SBUF" " ] }
|
||||||
|
} case ; inline
|
||||||
|
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
|
|
||||||
|
@ -120,7 +123,7 @@ PRIVATE>
|
||||||
: stream-contents ( stream -- seq )
|
: stream-contents ( stream -- seq )
|
||||||
[
|
[
|
||||||
[ [ ] collector [ each-stream-block ] dip { } like ]
|
[ [ ] collector [ each-stream-block ] dip { } like ]
|
||||||
[ stream-element-exemplar concat-as ] bi
|
[ stream-exemplar concat-as ] bi
|
||||||
] with-disposal ;
|
] with-disposal ;
|
||||||
|
|
||||||
: stream-contents-length ( stream -- n )
|
: stream-contents-length ( stream -- n )
|
||||||
|
@ -147,7 +150,7 @@ PRIVATE>
|
||||||
MIXIN: noncopying-reader
|
MIXIN: noncopying-reader
|
||||||
|
|
||||||
: (new-sequence-for-stream) ( n stream -- seq )
|
: (new-sequence-for-stream) ( n stream -- seq )
|
||||||
stream-element-exemplar new-sequence ; inline
|
stream-exemplar new-sequence ; inline
|
||||||
|
|
||||||
: (read-into-new) ( n stream quot -- byte-array/f )
|
: (read-into-new) ( n stream quot -- byte-array/f )
|
||||||
[ 2dup (new-sequence-for-stream) swap ] dip curry keep
|
[ 2dup (new-sequence-for-stream) swap ] dip curry keep
|
||||||
|
|
|
@ -9,17 +9,11 @@ TUPLE: peek-stream stream peeked ;
|
||||||
|
|
||||||
M: peek-stream dispose stream>> dispose ;
|
M: peek-stream dispose stream>> dispose ;
|
||||||
|
|
||||||
: stream-exemplar-growable ( stream -- exemplar )
|
|
||||||
stream-element-type {
|
|
||||||
{ +byte+ [ BV{ } ] }
|
|
||||||
{ +character+ [ SBUF" " ] }
|
|
||||||
} case ; inline
|
|
||||||
|
|
||||||
: stream-new-resizable ( n stream -- exemplar )
|
: stream-new-resizable ( n stream -- exemplar )
|
||||||
stream-element-exemplar new-resizable ; inline
|
stream-exemplar new-resizable ; inline
|
||||||
|
|
||||||
: stream-like ( sequence stream -- sequence' )
|
: stream-like ( sequence stream -- sequence' )
|
||||||
stream-element-exemplar like ; inline
|
stream-exemplar like ; inline
|
||||||
|
|
||||||
: stream-clone-resizable ( sequence stream -- sequence' )
|
: stream-clone-resizable ( sequence stream -- sequence' )
|
||||||
stream-exemplar-growable clone-like ; inline
|
stream-exemplar-growable clone-like ; inline
|
||||||
|
@ -52,7 +46,7 @@ M:: peek-stream stream-read ( n stream -- sequence )
|
||||||
] [
|
] [
|
||||||
peeked <reversed>
|
peeked <reversed>
|
||||||
n #peeked - stream stream>> stream-read
|
n #peeked - stream stream>> stream-read
|
||||||
stream stream-element-exemplar append-as
|
stream stream-exemplar append-as
|
||||||
|
|
||||||
stream stream-exemplar-growable clone stream peeked<<
|
stream stream-exemplar-growable clone stream peeked<<
|
||||||
] if
|
] if
|
||||||
|
@ -83,7 +77,7 @@ M: peek-stream stream-flush stream>> stream-flush ;
|
||||||
|
|
||||||
: stream-peek ( n stream -- seq )
|
: stream-peek ( n stream -- seq )
|
||||||
2dup peeked>> { [ length <= ] [ length 0 > ] } 1&& [
|
2dup peeked>> { [ length <= ] [ length 0 > ] } 1&& [
|
||||||
[ peeked>> <reversed> swap head ] [ stream-element-exemplar like ] bi
|
[ peeked>> <reversed> swap head ] [ stream-exemplar like ] bi
|
||||||
] [
|
] [
|
||||||
[ nip ]
|
[ nip ]
|
||||||
[ stream-read ] 2bi
|
[ stream-read ] 2bi
|
||||||
|
|
Loading…
Reference in New Issue