ioutil

package
v0.0.4 Latest Latest
Warning

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

Go to latest
Published: Mar 20, 2020 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Overview

Package ioutil implements some I/O utility functions which are not covered by the standard library.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AppendFile

func AppendFile(dst string, src string) error

AppendFile - appends the file "src" to the file "dst"

func CopyAligned

func CopyAligned(w *os.File, r io.Reader, alignedBuf []byte, totalSize int64) (int64, error)

CopyAligned - copies from reader to writer using the aligned input buffer, it is expected that input buffer is page aligned to 4K page boundaries. Without passing aligned buffer may cause this function to return error.

This code is similar in spirit to io.CopyBuffer but it is only to be used with DIRECT I/O based file descriptor and it is expected that input writer *os.File not a generic io.Writer. Make sure to have the file opened for writes with syscall.O_DIRECT flag.

func NewSkipReader

func NewSkipReader(r io.Reader, n int64) io.Reader

NewSkipReader - creates a SkipReader

func NopCloser

func NopCloser(w io.Writer) io.WriteCloser

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

func SameFile

func SameFile(fi1, fi2 os.FileInfo) bool

SameFile returns if the files are same.

Types

type LimitWriter

type LimitWriter struct {
	io.Writer
	// contains filtered or unexported fields
}

LimitWriter implements io.WriteCloser.

This is implemented such that we want to restrict an enscapsulated writer upto a certain length and skip a certain number of bytes.

func LimitedWriter

func LimitedWriter(w io.Writer, skipBytes int64, limit int64) *LimitWriter

LimitedWriter takes an io.Writer and returns an ioutil.LimitWriter.

func (*LimitWriter) Close

func (w *LimitWriter) Close() error

Close closes the LimitWriter. It behaves like io.Closer.

func (*LimitWriter) Write

func (w *LimitWriter) Write(p []byte) (n int, err error)

Implements the io.Writer interface limiting upto configured length, also skips the first N bytes.

type SkipReader

type SkipReader struct {
	io.Reader
	// contains filtered or unexported fields
}

SkipReader skips a given number of bytes and then returns all remaining data.

func (*SkipReader) Read

func (s *SkipReader) Read(p []byte) (int, error)

type WriteOnCloser

type WriteOnCloser struct {
	io.Writer
	// contains filtered or unexported fields
}

WriteOnCloser implements io.WriteCloser and always executes at least one write operation if it is closed.

This can be useful within the context of HTTP. At least one write operation must happen to send the HTTP headers to the peer.

func WriteOnClose

func WriteOnClose(w io.Writer) *WriteOnCloser

WriteOnClose takes an io.Writer and returns an ioutil.WriteOnCloser.

func (*WriteOnCloser) Close

func (w *WriteOnCloser) Close() error

Close closes the WriteOnCloser. It behaves like io.Closer.

func (*WriteOnCloser) HasWritten

func (w *WriteOnCloser) HasWritten() bool

HasWritten returns true if at least one write operation was performed.

func (*WriteOnCloser) Write

func (w *WriteOnCloser) Write(p []byte) (int, error)

Jump to

Keyboard shortcuts

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