Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var (
ErrFetchReaderNotEnoughBuffer = errors.New(
"not enough buffer")
)
Errors
var (
ErrReadUntilCompletedBufferFull = errors.New(
"cannot read more, not enough data buffer")
)
Errors
Functions ¶
func FetchOneByte ¶
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 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 ¶
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