From 6aa8b1fea8b36816537681196e266ab50de5fb9d Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Fri, 6 Feb 2009 02:07:32 -0600 Subject: [PATCH] io.styles: now that its in basis, we can use the delegate vocab instead of manual delegation --- basis/io/styles/styles.factor | 36 ++++++++--------------------------- 1 file changed, 8 insertions(+), 28 deletions(-) diff --git a/basis/io/styles/styles.factor b/basis/io/styles/styles.factor index 6ebb4952e7..836d4637cb 100644 --- a/basis/io/styles/styles.factor +++ b/basis/io/styles/styles.factor @@ -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 ;