Re-added SliceReaderAt

This commit is contained in:
2024-09-30 13:02:57 -06:00
parent 5e6eafef64
commit c29be1a7b6
3 changed files with 58 additions and 0 deletions

View File

@ -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}
}