1 ! Copyright (C) 2008 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors alien alien.accessors io kernel ;
6 TUPLE: memory-stream alien ;
8 : <memory-stream> ( alien -- stream )
11 INSTANCE: memory-stream input-stream
13 M: memory-stream stream-element-type drop +byte+ ;
15 M: memory-stream stream-read1
16 [ 1 over <displaced-alien> ] change-alien drop
17 0 alien-unsigned-1 ; inline
19 : with-memory-reader ( alien quot -- )
20 [ <memory-stream> ] dip with-input-stream* ; inline