diff options
author | Markus Wüstenberg | 2020-11-02 10:03:05 +0100 |
---|---|---|
committer | GitHub | 2020-11-02 10:03:05 +0100 |
commit | 6c8f0c235287edf7252fe239d4c9beb258c6ff01 (patch) | |
tree | ae1245a8e1491f5f369e8d9ef2517148d9774130 /attr/attributes.go | |
parent | 92ba5904c1645e6572f5ff1b9d0e0ec629e1afb9 (diff) | |
download | gomponents-6c8f0c235287edf7252fe239d4c9beb258c6ff01.tar.lz gomponents-6c8f0c235287edf7252fe239d4c9beb258c6ff01.tar.zst gomponents-6c8f0c235287edf7252fe239d4c9beb258c6ff01.zip |
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.)
Diffstat (limited to 'attr/attributes.go')
-rw-r--r-- | attr/attributes.go | 9 |
1 files changed, 6 insertions, 3 deletions
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() } |