This commit is contained in:
Mechiel Lukkien
2023-01-30 14:27:06 +01:00
commit cb229cb6cf
1256 changed files with 491723 additions and 0 deletions

20
moxio/limitatreader.go Normal file
View File

@ -0,0 +1,20 @@
package moxio
import (
"io"
)
// LimitAtReader is a reader at that returns ErrLimit if reads would extend
// beyond Limit.
type LimitAtReader struct {
R io.ReaderAt
Limit int64
}
// ReadAt passes the read on to R, but returns an error if the read data would extend beyond Limit.
func (r *LimitAtReader) ReadAt(buf []byte, offset int64) (int, error) {
if offset+int64(len(buf)) > r.Limit {
return 0, ErrLimit
}
return r.R.ReadAt(buf, offset)
}