123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package vfsgen
-
- import "io"
-
- // commentWriter writes a Go comment to the underlying io.Writer,
- // using line comment form (//).
- type commentWriter struct {
- W io.Writer
- wroteSlashes bool // Wrote "//" at the beginning of the current line.
- }
-
- func (c *commentWriter) Write(p []byte) (int, error) {
- var n int
- for i, b := range p {
- if !c.wroteSlashes {
- s := "//"
- if b != '\n' {
- s = "// "
- }
- if _, err := io.WriteString(c.W, s); err != nil {
- return n, err
- }
- c.wroteSlashes = true
- }
- n0, err := c.W.Write(p[i : i+1])
- n += n0
- if err != nil {
- return n, err
- }
- if b == '\n' {
- c.wroteSlashes = false
- }
- }
- return len(p), nil
- }
-
- func (c *commentWriter) Close() error {
- if !c.wroteSlashes {
- if _, err := io.WriteString(c.W, "//"); err != nil {
- return err
- }
- c.wroteSlashes = true
- }
- return nil
- }
|