io: nab io.streams.peek's stream-exemplar-growable

Rename stream-element-examplar to stream-exemplar to match.
db4
Joe Groff 2011-10-12 13:50:38 -07:00
parent 59f0b93290
commit d54824cb40
2 changed files with 13 additions and 16 deletions

View File

@ -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

View File

@ -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