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
colors summary make accessors splitting math.order
kernel namespaces assocs destructors strings sequences
present fry strings.tables ;
present fry strings.tables delegate delegate.protocols ;
IN: io.styles
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: 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 ;
: tabular-output ( style quot -- )
@ -40,35 +44,11 @@ GENERIC: stream-write-table ( table-cells style stream -- )
TUPLE: filter-writer stream ;
M: filter-writer stream-format
stream>> stream-format ;
CONSULT: output-stream-protocol filter-writer stream>> ;
M: filter-writer stream-write
stream>> stream-write ;
CONSULT: formatted-output-stream-protocol filter-writer stream>> ;
M: filter-writer stream-write1
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 ;
M: filter-writer dispose stream>> dispose ;
TUPLE: ignore-close-stream < filter-writer ;