add seeking to byte-array streams
parent
68ad822cc5
commit
12a53bbdc0
|
@ -2,7 +2,7 @@
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: byte-arrays byte-vectors kernel io.encodings io.streams.string
|
USING: byte-arrays byte-vectors kernel io.encodings io.streams.string
|
||||||
sequences io namespaces io.encodings.private accessors sequences.private
|
sequences io namespaces io.encodings.private accessors sequences.private
|
||||||
io.streams.sequence destructors ;
|
io.streams.sequence destructors math combinators ;
|
||||||
IN: io.streams.byte-array
|
IN: io.streams.byte-array
|
||||||
|
|
||||||
: <byte-writer> ( encoding -- stream )
|
: <byte-writer> ( encoding -- stream )
|
||||||
|
@ -20,6 +20,14 @@ M: byte-reader stream-read1 sequence-read1 ;
|
||||||
M: byte-reader stream-read-until sequence-read-until ;
|
M: byte-reader stream-read-until sequence-read-until ;
|
||||||
M: byte-reader dispose drop ;
|
M: byte-reader dispose drop ;
|
||||||
|
|
||||||
|
M: byte-reader stream-seek ( n seek-type stream -- )
|
||||||
|
swap {
|
||||||
|
{ seek-absolute [ (>>i) ] }
|
||||||
|
{ seek-relative [ [ + ] change-i drop ] }
|
||||||
|
{ seek-end [ dup underlying>> length >>i [ + ] change-i drop ] }
|
||||||
|
[ bad-seek-type ]
|
||||||
|
} case ;
|
||||||
|
|
||||||
: <byte-reader> ( byte-array encoding -- stream )
|
: <byte-reader> ( byte-array encoding -- stream )
|
||||||
[ B{ } like 0 byte-reader boa ] dip <decoder> ;
|
[ B{ } like 0 byte-reader boa ] dip <decoder> ;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue