limitio

package
v1.2.13 Latest Latest
Warning

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

Go to latest
Published: May 12, 2026 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Overview

Package limitio provides size-limited I/O operations to prevent unbounded reads.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewLimitedReader

func NewLimitedReader(r io.Reader, limit int64) io.Reader

NewLimitedReader creates a new LimitedReader that will return a SizeLimitExceededError if more than limit bytes are read from r.

  • If limit == -1: returns the reader unwrapped (unlimited)

func NewLimitedReaderWithDefault

func NewLimitedReaderWithDefault(r io.Reader, limit, defaultLimit int64) io.Reader

NewLimitedReaderWithDefault creates a LimitedReader with special handling for default values:

  • If limit == -1: returns the reader unwrapped (unlimited)
  • If limit == 0: uses defaultLimit
  • Otherwise: uses the provided limit

Types

type LimitedReader

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

LimitedReader wraps io.LimitedReader and returns a SizeLimitExceededError when the limit is exceeded. Unlike io.LimitedReader which returns EOF, this returns a specific error to indicate the limit was exceeded.

func (*LimitedReader) Read

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

type SizeLimitExceededError

type SizeLimitExceededError struct {
	Limit int64
}

SizeLimitExceededError is returned when a read exceeds its configured size limit.

func (*SizeLimitExceededError) Error

func (e *SizeLimitExceededError) Error() string

Jump to

Keyboard shortcuts

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