2009-01-13 20:25:44 -05:00
|
|
|
! Copyright (C) 2007, 2009 Slava Pestov.
|
2007-09-20 18:09:08 -04:00
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
2009-01-29 19:33:19 -05:00
|
|
|
USING: kernel io destructors io.streams.plain ;
|
2007-09-20 18:09:08 -04:00
|
|
|
IN: io.streams.null
|
|
|
|
|
2009-01-13 20:25:44 -05:00
|
|
|
SINGLETONS: null-reader null-writer ;
|
|
|
|
UNION: null-stream null-reader null-writer ;
|
2011-10-18 19:24:50 -04:00
|
|
|
INSTANCE: null-reader input-stream
|
|
|
|
INSTANCE: null-writer output-stream
|
2009-01-29 19:33:19 -05:00
|
|
|
INSTANCE: null-writer plain-writer
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2008-01-31 01:52:06 -05:00
|
|
|
M: null-stream dispose drop ;
|
2008-05-05 03:19:25 -04:00
|
|
|
|
2009-03-15 18:11:18 -04:00
|
|
|
M: null-reader stream-element-type drop +byte+ ;
|
2008-05-05 03:19:25 -04:00
|
|
|
M: null-reader stream-readln drop f ;
|
|
|
|
M: null-reader stream-read1 drop f ;
|
|
|
|
M: null-reader stream-read-until 2drop f f ;
|
2011-10-12 14:59:24 -04:00
|
|
|
M: null-reader stream-read-unsafe 3drop 0 ;
|
|
|
|
M: null-reader stream-read-partial-unsafe 3drop 0 ;
|
2008-05-05 03:19:25 -04:00
|
|
|
|
2009-03-15 18:11:18 -04:00
|
|
|
M: null-writer stream-element-type drop +byte+ ;
|
2008-05-05 03:19:25 -04:00
|
|
|
M: null-writer stream-write1 2drop ;
|
|
|
|
M: null-writer stream-write 2drop ;
|
|
|
|
M: null-writer stream-flush drop ;
|
|
|
|
|
|
|
|
: with-null-reader ( quot -- )
|
2009-01-13 20:25:44 -05:00
|
|
|
null-reader swap with-input-stream* ; inline
|
2008-05-05 03:19:25 -04:00
|
|
|
|
|
|
|
: with-null-writer ( quot -- )
|
2009-01-29 19:33:19 -05:00
|
|
|
null-writer swap with-output-stream* ; inline
|