io.styles: now that its in basis, we can use the delegate vocab instead of manual delegation

db4
Slava Pestov 2009-02-06 02:07:32 -06:00
parent a0c1d32197
commit 6aa8b1fea8
1 changed files with 8 additions and 28 deletions

View File

@ -3,7 +3,7 @@
USING: hashtables io io.streams.plain io.streams.string USING: hashtables io io.streams.plain io.streams.string
colors summary make accessors splitting math.order colors summary make accessors splitting math.order
kernel namespaces assocs destructors strings sequences kernel namespaces assocs destructors strings sequences
present fry strings.tables ; present fry strings.tables delegate delegate.protocols ;
IN: io.styles IN: io.styles
GENERIC: stream-format ( str style stream -- ) GENERIC: stream-format ( str style stream -- )
@ -12,6 +12,10 @@ GENERIC: make-block-stream ( style stream -- stream' )
GENERIC: make-cell-stream ( style stream -- stream' ) GENERIC: make-cell-stream ( style stream -- stream' )
GENERIC: stream-write-table ( table-cells style stream -- ) GENERIC: stream-write-table ( table-cells style stream -- )
PROTOCOL: formatted-output-stream-protocol
stream-format make-span-stream make-block-stream
make-cell-stream stream-write-table ;
: format ( str style -- ) output-stream get stream-format ; : format ( str style -- ) output-stream get stream-format ;
: tabular-output ( style quot -- ) : tabular-output ( style quot -- )
@ -40,35 +44,11 @@ GENERIC: stream-write-table ( table-cells style stream -- )
TUPLE: filter-writer stream ; TUPLE: filter-writer stream ;
M: filter-writer stream-format CONSULT: output-stream-protocol filter-writer stream>> ;
stream>> stream-format ;
M: filter-writer stream-write CONSULT: formatted-output-stream-protocol filter-writer stream>> ;
stream>> stream-write ;
M: filter-writer stream-write1 M: filter-writer dispose stream>> dispose ;
stream>> stream-write1 ;
M: filter-writer make-span-stream
stream>> make-span-stream ;
M: filter-writer make-block-stream
stream>> make-block-stream ;
M: filter-writer make-cell-stream
stream>> make-cell-stream ;
M: filter-writer stream-flush
stream>> stream-flush ;
M: filter-writer stream-nl
stream>> stream-nl ;
M: filter-writer stream-write-table
stream>> stream-write-table ;
M: filter-writer dispose
stream>> dispose ;
TUPLE: ignore-close-stream < filter-writer ; TUPLE: ignore-close-stream < filter-writer ;