package file import ( "fmt" "os" ) type LimitedWriter struct { File *os.File Limit int64 n int64 } func (lw *LimitedWriter) Write(p []byte) (n int, err error) { if lw.n+int64(len(p)) > lw.Limit { return 0, fmt.Errorf("output limit exceeded") } n, err = lw.File.Write(p) lw.n += int64(n) return }