woj-server/pkg/file/writer.go

22 lines
316 B
Go

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
}