package ioext

import "github.com/go-playground/pkg/v5/io"

Index

Variables

var (
	// ErrLimitedReaderEOF is an error returned by LimitedReader to give feedback to the fact that we did not hit an
	// EOF of the Reader but hit the limit imposed by the LimitedReader.
	ErrLimitedReaderEOF = errors.New("LimitedReader EOF: limit reached")
)

Types

type LimitedReader

type LimitedReader struct {
	R io.Reader
	N int64 // bytes allotted
}

A LimitedReader reads from R but limits the amount of data returned to just N bytes. Each call to Read updates N to reflect the new amount remaining. Read returns ErrLimitedReaderEOF when N <= 0 or when the underlying R returns EOF. Unlike the std io.LimitedReader this provides feedback that the limit was reached through the returned error.

func LimitReader

func LimitReader(r io.Reader, n int64) *LimitedReader

LimitReader returns a LimitedReader that reads from r but stops with ErrLimitedReaderEOF after n bytes.

func (*LimitedReader) Read

func (l *LimitedReader) Read(p []byte) (n int, err error)

Source Files

limit_reader.go

Version
v5.6.0
Published
Apr 28, 2022
Platform
darwin/amd64
Imports
2 packages
Last checked
4 minutes ago

Tools for package owners.