readerutil

package
v1.1.10 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 8, 2026 License: BSD-3-Clause Imports: 6 Imported by: 0

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewBufferingReaderAt

func NewBufferingReaderAt(r io.Reader) io.ReaderAt

NewBufferingReaderAt returns an io.ReaderAt that reads from r as necessary and keeps a copy of all data read in memory.

func NewFakeSeeker

func NewFakeSeeker(r io.Reader, size int64) io.ReadSeeker

NewFakeSeeker returns a ReadSeeker that can pretend to Seek (based on the provided total size of the reader's content), but any reads will fail if the fake seek position doesn't match reality.

func Size

func Size(r io.Reader) (size int64, ok bool)

Size tries to determine the length of r. If r is an io.Seeker, Size may seek to guess the length.

Types

type CountingReader

type CountingReader struct {
	Reader io.Reader
	N      *int64
}

CountingReader wraps a Reader, incrementing N by the number of bytes read. No locking is performed.

func NewCountingReader

func NewCountingReader(r io.Reader, n *int64) *CountingReader

NewCountingReader returns a CountingReader that wraps r and counts bytes in n.

Example
var (
	// r is the io.Reader we'd like to count read from.
	r  = strings.NewReader("Hello world")
	n  int64
	cr = NewCountingReader(r, &n)
)
// Read from the wrapped io.Reader, CountingReader will count the bytes.
io.Copy(io.Discard, cr)
fmt.Printf("Read %d bytes\n", n)
Output:
Read 11 bytes

func (CountingReader) Read

func (cr CountingReader) Read(p []byte) (n int, err error)

type ReadSeekCloser

type ReadSeekCloser interface {
	io.Reader
	io.Seeker
	io.Closer
}

ReadSeekCloser can Read, Seek, and Close.

type ReaderAtCloser

type ReaderAtCloser interface {
	io.ReaderAt
	io.Closer
}

ReaderAtCloser can ReadAt and Close.

type SizeReaderAt

type SizeReaderAt interface {
	Size() int64
	io.ReaderAt
}

SizeReaderAt is a ReaderAt with a Size method. An io.SectionReader implements SizeReaderAt.

func NewMultiReaderAt

func NewMultiReaderAt(parts ...SizeReaderAt) SizeReaderAt

NewMultiReaderAt is like io.MultiReader but produces a ReaderAt (and Size), instead of just a reader.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL