Files
git-pages/src/util.go

26 lines
484 B
Go

package main
import "io"
type BoundedReader struct {
inner io.Reader
fuel int64
err error
}
func ReadAtMost(reader io.Reader, count int64, err error) io.Reader {
return &BoundedReader{reader, count, err}
}
func (reader *BoundedReader) Read(dest []byte) (count int, err error) {
if reader.fuel <= 0 {
return 0, reader.err
}
if int64(len(dest)) > reader.fuel {
dest = dest[0:reader.fuel]
}
count, err = reader.inner.Read(dest)
reader.fuel -= int64(count)
return
}