io

package
v2.0.0-...-5024b2a Latest Latest
Warning

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

Go to latest
Published: Jan 17, 2023 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrOutOfRange = errors.New("out of range")
)

Functions

func NewLogReader

func NewLogReader[R io.ReadSeeker](r R) *logReader[R]

func NewLogWriter

func NewLogWriter[W io.Writer](w W) *logWriter[W]

func ReadLogEntries

func ReadLogEntries(r LogReader, fn func(LogEntry) error) error

func ReadLogLen

func ReadLogLen(r LogReader) (int, error)

func SpliceDatabase

func SpliceDatabase[
	B tapedb.Base,
	S tapedb.State,
	F tapedb.Factory[B, S],
](
	f F,
	baseW io.Writer,
	logW LogWriter,
	baseR io.Reader,
	logR LogReader,
	rebaseChangeSelectFn func(tapedb.Change, int) (bool, error),
	baseOrChangeWrittenFn func(any) error,
) error

Types

type Buffer

type Buffer struct {
	// contains filtered or unexported fields
}

func NewBuffer

func NewBuffer(data []byte) *Buffer

func NewBufferString

func NewBufferString(data string) *Buffer

func (*Buffer) Bytes

func (b *Buffer) Bytes() []byte

func (*Buffer) Read

func (b *Buffer) Read(data []byte) (int, error)

func (*Buffer) Seek

func (b *Buffer) Seek(offset int64, whence int) (int64, error)

func (*Buffer) String

func (b *Buffer) String() string

func (*Buffer) Write

func (b *Buffer) Write(data []byte) (int, error)

type CountReader

type CountReader[R io.Reader] struct {
	// contains filtered or unexported fields
}

func NewCountReader

func NewCountReader[R io.Reader](r R) *CountReader[R]

func (*CountReader[R]) Count

func (r *CountReader[R]) Count() int

func (*CountReader[R]) Read

func (r *CountReader[R]) Read(data []byte) (int, error)

type Database

type Database[B tapedb.Base, S tapedb.State] struct {
	// contains filtered or unexported fields
}

func NewDatabase

func NewDatabase[
	B tapedb.Base,
	S tapedb.State,
	F tapedb.Factory[B, S],
](
	f F,
	logW LogWriter,
) (*Database[B, S], error)

func OpenDatabase

func OpenDatabase[
	B tapedb.Base,
	S tapedb.State,
	F tapedb.Factory[B, S],
](
	f F,
	baseR io.Reader,
	logR LogReader,
	logW LogWriter,
) (*Database[B, S], error)

func (*Database[B, S]) Apply

func (db *Database[B, S]) Apply(c tapedb.Change) error

func (*Database[B, S]) Base

func (db *Database[B, S]) Base() B

func (*Database[B, S]) Close

func (db *Database[B, S]) Close() error

func (*Database[B, S]) LogLen

func (db *Database[B, S]) LogLen() int

func (*Database[B, S]) State

func (db *Database[B, S]) State() S

type LogBuffer

type LogBuffer struct {
	// contains filtered or unexported fields
}

func NewLogBuffer

func NewLogBuffer(data []byte) *LogBuffer

func NewLogBufferString

func NewLogBufferString(data string) *LogBuffer

func (*LogBuffer) HexString

func (b *LogBuffer) HexString() string

func (*LogBuffer) ReadEntry

func (b *LogBuffer) ReadEntry() (LogEntry, error)

func (*LogBuffer) String

func (b *LogBuffer) String() string

func (*LogBuffer) WriteEntry

func (b *LogBuffer) WriteEntry(et LogEntryType, data []byte) (int64, error)

type LogEntry

type LogEntry interface {
	Type() LogEntryType
	Reader() (io.Reader, error)
}

type LogEntryType

type LogEntryType uint32
const (
	LogEntryTypeBinary          LogEntryType = 0x00000000
	LogEntryTypeAESGCMEncrypted LogEntryType = 0x10000000
	LogEntryTypeMask            LogEntryType = 0xf0000000
)

type LogReader

type LogReader interface {
	ReadEntry() (LogEntry, error)
}

type LogWriter

type LogWriter interface {
	WriteEntry(LogEntryType, []byte) (int64, error)
}

type ReadCloser

type ReadCloser[R io.Reader] struct {
	// contains filtered or unexported fields
}

func NewReadCloser

func NewReadCloser[R io.Reader](r R, closeFn func() error) *ReadCloser[R]

func (*ReadCloser[R]) Close

func (r *ReadCloser[R]) Close() error

func (*ReadCloser[R]) Read

func (r *ReadCloser[R]) Read(data []byte) (int, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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