wrapped output-stream get into it's own typed word
parent
b34acc0752
commit
9f52a0aaf2
|
@ -17,13 +17,16 @@ CONSTANT: INT64-SIZE 8
|
|||
|
||||
PRIVATE>
|
||||
|
||||
TYPED: get-output ( -- stream: byte-vector )
|
||||
output-stream get ; inline
|
||||
|
||||
TYPED: with-length ( quot -- bytes-written: integer start-index: integer )
|
||||
[ output-stream get [ length ] [ ] bi ] dip
|
||||
[ get-output [ length ] [ ] bi ] dip
|
||||
call length swap [ - ] keep ; inline
|
||||
|
||||
: (with-length-prefix) ( ..a quot: ( ..a -- ..b ) length-quot: ( bytes-written -- length ) -- ..b )
|
||||
: (with-length-prefix) ( quot: ( .. -- .. ) length-quot: ( bytes-written -- length ) -- )
|
||||
[ [ B{ 0 0 0 0 } write ] prepose with-length ] dip swap
|
||||
[ call output-stream get underlying>> ] dip set-alien-unsigned-4 ; inline
|
||||
[ call( written -- length ) get-output underlying>> ] dip set-alien-unsigned-4 ; inline
|
||||
|
||||
: with-length-prefix ( quot: ( .. -- .. ) -- )
|
||||
[ ] (with-length-prefix) ; inline
|
||||
|
|
Loading…
Reference in New Issue