stream-write1 ( elt stream -- ) (original) (raw)

stream-write1 ( elt stream -- )
Factor handbook » Input and output » Streams » Stream protocol

Prev: stream-flush ( stream -- )
Next: stream-write ( data stream -- )

Vocabulary
io

Inputs

elt an element
stream an output stream

Outputs
None

Generic word contract
Writes an element to the stream. If the stream does buffering, output may not be performed immediately; use stream-flush to force output.

Notes
Most code only works on one stream at a time and should instead use write1; see Default input and output streams.

Errors
Throws an error if the I/O operation fails.

Definition

IN: io

GENERIC: stream-write1 ( elt stream -- )

Methods

USING: accessors destructors io io.streams.c ;

M: c-writer stream-write1 check-disposed handle>> fputc ;

USING: accessors io io.streams.counting kernel math ;

M:: counting-stream stream-write1 ( elt stream -- )
elt stream stream>> stream-write1 stream
[ 1 + ] change-out-count drop ;

USING: accessors io io.crlf kernel ;

M: crlf-stream stream-write1
[ underlying>> ] call \ stream-write1 execute ;

USING: curses curses.listener io kernel ;

M: curses-listener-stream stream-write1 drop addch ;

USING: accessors io io.streams.duplex kernel ;

M: duplex-stream stream-write1
[ out>> ] call \ stream-write1 execute ;

USING: io io.encodings io.encodings.private ;

M: encoder stream-write1 >encoder< encode-char ; inline

USING: io kernel ;

M: f stream-write1 2drop ; inline

USING: accessors io io.styles kernel ;

M: filter-writer stream-write1
[ stream>> ] call \ stream-write1 execute ;

USING: growable io sequences ;

M: growable stream-write1 push ;

USING: html.streams html.streams.private io strings ;

M: html-writer stream-write1 [ 1string ] emit-html ;

USING: io io.streams.null kernel ;

M: null-writer stream-write1 2drop ;

USING: accessors destructors io io.buffers io.ports kernel ;

M: output-port stream-write1
check-disposed 1 over wait-to-write buffer>> buffer-write1 ;
inline

USING: io ui.gadgets.panes ui.gadgets.panes.private ;

M: pane-stream stream-write1 [ pane-write1 ] do-pane-stream ;

USING: accessors io kernel pdf.layout pdf.streams sequences
strings ;

M: pdf-writer stream-write1
[ 1string f ] [ data>> ] bi* push ;

USING: accessors io io.streams.peek ;

M: peek-stream stream-write1 stream>> stream-write1 ;

USING: io io.styles kernel strings ;

M: style-stream stream-write1 [ 1string ] dip stream-write ;