blob: 2e1d58c64e1539d841d20deb59913b6a9d2249ad [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package iomisc
import (
"io"
)
// readerAtAdapter wraps an io.ReaderAt and implements io.Reader.
type readerAtAdapter struct {
ra io.ReaderAt
offset int64
}
// Read reads bytes into b starting at the first unread byte.
func (r *readerAtAdapter) Read(b []byte) (int, error) {
n, err := r.ra.ReadAt(b, r.offset)
r.offset += int64(n)
return n, err
}
// ReaderAtToReader creates a new Reader from a ReaderAt.
func ReaderAtToReader(r io.ReaderAt) io.Reader {
return &readerAtAdapter{
ra: r,
offset: 0,
}
}