rw

package
v0.0.0-...-fdfa60e Latest Latest
Warning

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

Go to latest
Published: Apr 4, 2024 License: AGPL-3.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrFetchReaderNotEnoughBuffer = errors.New(
		"not enough buffer")
)

Errors

View Source
var (
	ErrReadUntilCompletedBufferFull = errors.New(
		"cannot read more, not enough data buffer")
)

Errors

Functions

func FetchOneByte

func FetchOneByte(f Fetch) ([]byte, error)

FetchOneByte fetchs one byte from the Fetch, or return an error when it fails

func ReadFull

func ReadFull(r ReaderFunc, b []byte) (int, error)

ReadFull Read until given b is fully loaded

func ReadUntilCompleted

func ReadUntilCompleted(r *LimitedReader, b []byte) (int, error)

ReadUntilCompleted read until the reader is completed

Types

type Fetch

type Fetch func(n int) ([]byte, error)

Fetch fetchs

type FetchReader

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

FetchReader read from the source and increase your lifespan if used correctly

func NewFetchReader

func NewFetchReader(g FetchReaderFetcher) FetchReader

NewFetchReader creates a new FetchReader

func (*FetchReader) Export

func (r *FetchReader) Export(n int) ([]byte, error)

Export directly exports from buffer, never read from source

Params:

  • n: Exact amount of bytes to fetch (0 to n, n included). If number n is unreachable, an error will be returned, and no internal status will be changed

Returns:

  • Fetched data
  • Read error

func (*FetchReader) Fetch

func (r *FetchReader) Fetch(n int) ([]byte, error)

Fetch fetchs data from the source

Params:

  • n: Max bytes to fetch (0 to n, n included)

Returns:

  • Fetched data
  • Read error

func (*FetchReader) Read

func (r *FetchReader) Read(b []byte) (int, error)

Read implements io.Read

func (*FetchReader) Remain

func (r *FetchReader) Remain() int

Remain Returns how many bytes is waiting to be readed

type FetchReaderFetcher

type FetchReaderFetcher func() ([]byte, error)

FetchReaderFetcher generates data for SourceReader

type LimitedReader

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

LimitedReader reads only n bytes of data

func NewLimitedReader

func NewLimitedReader(r *FetchReader, n int) LimitedReader

NewLimitedReader creates a new LimitedReader

func (*LimitedReader) Buffered

func (l *LimitedReader) Buffered() ([]byte, error)

Buffered exports the internal buffer

func (LimitedReader) Completed

func (l LimitedReader) Completed() bool

Completed returns whether or not current reader is completed

func (*LimitedReader) Ditch

func (l *LimitedReader) Ditch(buf []byte) error

Ditch ditchs all remaining data. Data will be written and overwritten to the given buf when ditching

func (*LimitedReader) Fetch

func (l *LimitedReader) Fetch(n int) ([]byte, error)

Fetch fetchs max n bytes from buffer

func (*LimitedReader) Read

func (l *LimitedReader) Read(b []byte) (int, error)

Read read from the LimitedReader

func (LimitedReader) Remains

func (l LimitedReader) Remains() int

Remains returns how many bytes is waiting to be read

type ReaderFunc

type ReaderFunc func(b []byte) (int, error)

ReaderFunc function of io.Reader

Jump to

Keyboard shortcuts

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