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 }