25 lines
369 B
Go
25 lines
369 B
Go
package toreader
|
|
|
|
import "io"
|
|
|
|
type ReaderAt struct {
|
|
d []byte
|
|
}
|
|
|
|
func NewReaderAt(r io.Reader) (ra *ReaderAt, err error) {
|
|
ra = new(ReaderAt)
|
|
ra.d, err = io.ReadAll(r)
|
|
return
|
|
}
|
|
|
|
func (r ReaderAt) ReadAt(p []byte, off int64) (n int, err error) {
|
|
if int(off) >= len(r.d) {
|
|
return 0, io.EOF
|
|
}
|
|
n = copy(p, r.d[off:])
|
|
if n != len(p) {
|
|
err = io.EOF
|
|
}
|
|
return
|
|
}
|