| // +build ignore,OMIT | |
| package main | |
| import ( | |
| "bytes" | |
| "fmt" | |
| "io" | |
| "os" | |
| ) | |
| var ( | |
| _ = bytes.Buffer{} | |
| _ = os.Stdout | |
| ) | |
| // WriteCounter tracks the total number of bytes written. | |
| type WriteCounter struct { | |
| io.ReadWriter | |
| count int | |
| } | |
| func (w *WriteCounter) Write(b []byte) (int, error) { | |
| w.count += len(b) | |
| return w.ReadWriter.Write(b) | |
| } | |
| // MAIN OMIT | |
| func main() { | |
| buf := &bytes.Buffer{} | |
| w := &WriteCounter{ReadWriter: buf} | |
| fmt.Fprintf(w, "Hello, gophers!\n") | |
| fmt.Printf("Printed %v bytes", w.count) | |
| } |