seekbuf

package module
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Jun 16, 2026 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

Package seekbuf buffers an io.Reader into a seekable, randomly addressable resource, either in memory or backed by a temporary file.

Index

Constants

This section is empty.

Variables

View Source
var InMemoryFactory = FactoryFunc(NewInMemoryBuffer)

Functions

func SetDefault

func SetDefault(f Factory)

Types

type Buffer

type Buffer interface {
	Get() (ReadSeekAtCloser, error)
	Destroy() error
}

Buffer represents a resource that can be accessed via io interfaces and destroyed if no longer needed.

func New

func New(src io.Reader) (Buffer, error)

New creates a new Buffer that buffers an io.Reader into a ReadSeekAtCloser (seekable and randomly addressable via io.ReaderAt, e.g. for use with io.NewSectionReader) by either buffering it in memory or writing it to a temporary file.

func NewInMemoryBuffer added in v0.1.1

func NewInMemoryBuffer(src io.Reader) (result Buffer, rerr error)

type Factory

type Factory interface {
	New(io.Reader) (Buffer, error)
}
var Default Factory = InMemoryFactory

type FactoryFunc

type FactoryFunc func(io.Reader) (Buffer, error)

func (FactoryFunc) New

func (f FactoryFunc) New(r io.Reader) (Buffer, error)

type FileBufferFactory

type FileBufferFactory struct {
	Dir string
}

FileBufferFactory creates [Buffer]s for temporary files in Dir. If Dir is the empty string, the default directory for temporary files is used (see os.TempDir).

func (*FileBufferFactory) New

func (f *FileBufferFactory) New(src io.Reader) (result Buffer, rerr error)

type ReadSeekAt

type ReadSeekAt interface {
	io.ReadSeeker
	io.ReaderAt
}

type ReadSeekAtCloser

type ReadSeekAtCloser interface {
	ReadSeekAt
	io.Closer
}

Jump to

Keyboard shortcuts

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