From 6c8f0c235287edf7252fe239d4c9beb258c6ff01 Mon Sep 17 00:00:00 2001 From: Markus Wüstenberg Date: Mon, 2 Nov 2020 10:03:05 +0100 Subject: Render to Writer instead of string (#39) The Render function has been changed to take a `Writer` instead of returning a string. This makes it possible to generate documents without having the whole content in memory. This also removes the `gomponents.Write` function, which is now redundant. Furthermore, the `el.Document` function has been changed to only take one child, as multiple children never make sense for it. (It's not even a child, more a sibling.)--- attr/attributes.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'attr/attributes.go') diff --git a/attr/attributes.go b/attr/attributes.go index 2b25681..bc157cb 100644 --- a/attr/attributes.go +++ b/attr/attributes.go @@ -3,6 +3,7 @@ package attr import ( + "io" "sort" "strings" @@ -14,7 +15,7 @@ import ( // for which the corresponding map value is true. type Classes map[string]bool -func (c Classes) Render() string { +func (c Classes) Render(w io.Writer) error { var included []string for c, include := range c { if include { @@ -22,7 +23,7 @@ func (c Classes) Render() string { } } sort.Strings(included) - return g.Attr("class", strings.Join(included, " ")).Render() + return g.Attr("class", strings.Join(included, " ")).Render(w) } func (c Classes) Place() g.Placement { @@ -31,5 +32,7 @@ func (c Classes) Place() g.Placement { // String satisfies fmt.Stringer. func (c Classes) String() string { - return c.Render() + var b strings.Builder + _ = c.Render(&b) + return b.String() } -- cgit 1.4.1