ioutil

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jun 22, 2023 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

Package ioutil implements some I/O utility functions.

Index

Examples

Constants

This section is empty.

Variables

View Source
var (
	ErrEmptyReader = errors.New("reader is empty")
)

Functions

func CheckClose

func CheckClose(c io.Closer, err *error)

CheckClose calls Close on the given io.Closer. If the given *error points to nil, it will be assigned the error returned by Close. Otherwise, any error returned by Close will be ignored. CheckClose is usually called with defer.

Example
// CheckClose is commonly used with named return values
f := func() (err error) {
	// Get a io.ReadCloser
	r := io.NopCloser(strings.NewReader("foo"))

	// defer CheckClose call with an io.Closer and pointer to error
	defer CheckClose(r, &err)

	// ... work with r ...

	// if err is not nil, CheckClose will assign any close errors to it
	return err
}

err := f()
if err != nil {
	panic(err)
}
Output:

func NewContextReadCloser

func NewContextReadCloser(ctx context.Context, r io.ReadCloser) io.ReadCloser

NewContextReadCloser as NewContextReader but with io.Closer interface.

func NewContextReader

func NewContextReader(ctx context.Context, r io.Reader) io.Reader

NewContextReader wraps a reader to make it respect given Context. If there is a blocking read, the returned Reader will return whenever the context is cancelled (the return values are n=0 and err=ctx.Err()).

func NewContextWriteCloser

func NewContextWriteCloser(ctx context.Context, w io.WriteCloser) io.WriteCloser

NewContextWriteCloser as NewContextWriter but with io.Closer interface.

func NewContextWriter

func NewContextWriter(ctx context.Context, w io.Writer) io.Writer

NewContextWriter wraps a writer to make it respect given Context. If there is a blocking write, the returned Writer will return whenever the context is cancelled (the return values are n=0 and err=ctx.Err()).

func NewReadCloser

func NewReadCloser(r io.Reader, c io.Closer) io.ReadCloser

NewReadCloser creates an `io.ReadCloser` with the given `io.Reader` and `io.Closer`.

func NewReadCloserOnError

func NewReadCloserOnError(r io.ReadCloser, notify func(error)) io.ReadCloser

NewReadCloserOnError returns a io.ReadCloser that call the notify function when an unexpected (!io.EOF) error happens, after call Read function.

func NewReadCloserWithCloser

func NewReadCloserWithCloser(r io.ReadCloser, c func() error) io.ReadCloser

NewReadCloserWithCloser creates an `io.ReadCloser` with the given `io.ReaderCloser` and `io.Closer` that ensures that the closer is closed on close

func NewReaderOnError

func NewReaderOnError(r io.Reader, notify func(error)) io.Reader

NewReaderOnError returns a io.Reader that call the notify function when an unexpected (!io.EOF) error happens, after call Read function.

func NewReaderUsingReaderAt

func NewReaderUsingReaderAt(r io.ReaderAt, offset int64) io.Reader

func NewWriteCloser

func NewWriteCloser(w io.Writer, c io.Closer) io.WriteCloser

NewWriteCloser creates an `io.WriteCloser` with the given `io.Writer` and `io.Closer`.

func NewWriteCloserOnError

func NewWriteCloserOnError(w io.WriteCloser, notify func(error)) io.WriteCloser

NewWriteCloserOnError returns a io.WriteCloser that call the notify function when an unexpected (!io.EOF) error happens, after call Write function.

func NewWriterOnError

func NewWriterOnError(w io.Writer, notify func(error)) io.Writer

NewWriterOnError returns a io.Writer that call the notify function when an unexpected (!io.EOF) error happens, after call Write function.

func NonEmptyReader

func NonEmptyReader(r io.Reader) (io.Reader, error)

NonEmptyReader takes a reader and returns it if it is not empty, or `ErrEmptyReader` if it is empty. If there is an error when reading the first byte of the given reader, it will be propagated.

func Pipe

func Pipe() (PipeReader, PipeWriter)

func WriteNopCloser

func WriteNopCloser(w io.Writer) io.WriteCloser

WriteNopCloser returns a WriteCloser with a no-op Close method wrapping the provided Writer w.

Types

type PipeReader

type PipeReader interface {
	io.ReadCloser
	CloseWithError(err error) error
}

type PipeWriter

type PipeWriter interface {
	io.WriteCloser
	CloseWithError(err error) error
}

Jump to

Keyboard shortcuts

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