From 300a999be58c3331874c993d041667dea69cd84c Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Mon, 16 Dec 2019 20:06:18 +0100 Subject: [PATCH] Add ansi.StyleWriter, which wrap writer's output into a style --- ansi/stylewriter.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 ansi/stylewriter.go diff --git a/ansi/stylewriter.go b/ansi/stylewriter.go new file mode 100644 index 0000000..29e5c9d --- /dev/null +++ b/ansi/stylewriter.go @@ -0,0 +1,28 @@ +package ansi + +import ( + "bytes" + "io" +) + +type StyleWriter struct { + w io.Writer + buf bytes.Buffer + rules StylePrimitive +} + +func NewStyleWriter(ctx RenderContext, w io.Writer, rules StylePrimitive) *StyleWriter { + return &StyleWriter{ + w: w, + rules: rules, + } +} + +func (w *StyleWriter) Write(b []byte) (int, error) { + return w.buf.Write(b) +} + +func (w *StyleWriter) Close() error { + renderText(w.w, w.rules, w.buf.String()) + return nil +}