mirror of
https://github.com/mjl-/mox.git
synced 2024-12-28 01:13:47 +03:00
21 lines
324 B
Go
21 lines
324 B
Go
|
package moxio
|
||
|
|
||
|
import (
|
||
|
"io"
|
||
|
)
|
||
|
|
||
|
// AtReader is turns an io.ReaderAt into a io.Reader by keeping track of the
|
||
|
// offset.
|
||
|
type AtReader struct {
|
||
|
R io.ReaderAt
|
||
|
Offset int64
|
||
|
}
|
||
|
|
||
|
func (r *AtReader) Read(buf []byte) (int, error) {
|
||
|
n, err := r.R.ReadAt(buf, r.Offset)
|
||
|
if n > 0 {
|
||
|
r.Offset += int64(n)
|
||
|
}
|
||
|
return n, err
|
||
|
}
|