Re-added SliceReaderAt
This commit is contained in:
@ -116,6 +116,22 @@ type ReaderAt[T any] interface {
|
||||
ReadAt(p []T, off int64) (n int, err error)
|
||||
}
|
||||
|
||||
type SliceReaderAt[T any] []T
|
||||
|
||||
func (s SliceReaderAt[T]) ReadAt(dst []T, off int64) (n int, err error) {
|
||||
if off < 0 {
|
||||
return 0, errors.New("SliceReaderAt.ReadAt: negative offset")
|
||||
}
|
||||
if off >= int64(len(s)) {
|
||||
return 0, io.EOF
|
||||
}
|
||||
n = copy(dst, s[off:])
|
||||
if n < len(dst) {
|
||||
err = io.EOF
|
||||
}
|
||||
return n, err
|
||||
}
|
||||
|
||||
func MakeState[In any](r ReaderAt[In]) State[In] {
|
||||
return State[In]{r: r}
|
||||
}
|
||||
|
Reference in New Issue
Block a user