Documentation ¶
Index ¶
- func FprintfIfNotEmpty(w io.Writer, format, value string) (int, error)
- func FprintfIfTrue(w io.Writer, format string, ok bool) (int, error)
- func HashData(src io.Reader) (string, error)
- func MultiReadSeeker(readers ...io.ReadSeeker) io.ReadSeeker
- func NewBufReader(r io.Reader) io.ReadCloser
- func NewBufReaderWithDrainbufAndBuffer(r io.Reader, drainBuffer []byte, buffer io.ReadWriter) io.ReadCloser
- func NewReadCloserWrapper(r io.Reader, closer func() error) io.ReadCloser
- func NewReaderErrWrapper(r io.Reader, closer func()) io.Reader
- func NewWriteCloserWrapper(r io.Writer, closer func() error) io.WriteCloser
- func NopWriteCloser(w io.Writer) io.WriteCloser
- func TempDir(dir, prefix string) (string, error)
- type BytesPipe
- type NopFlusher
- type NopWriter
- type OnEOFReader
- type WriteCounter
- type WriteFlusher
- Bugs
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FprintfIfNotEmpty ¶
FprintfIfNotEmpty prints the string value if it's not empty
func FprintfIfTrue ¶
FprintfIfTrue prints the boolean value if it's true
func MultiReadSeeker ¶
func MultiReadSeeker(readers ...io.ReadSeeker) io.ReadSeeker
MultiReadSeeker returns a ReadSeeker that's the logical concatenation of the provided input readseekers. After calling this method the initial position is set to the beginning of the first ReadSeeker. At the end of a ReadSeeker, Read always advances to the beginning of the next ReadSeeker and returns EOF at the end of the last ReadSeeker. Seek can be used over the sum of lengths of all readseekers.
When a MultiReadSeeker is used, no Read and Seek operations should be made on its ReadSeeker components. Also, users should make no assumption on the state of individual readseekers while the MultiReadSeeker is used.
func NewBufReader ¶
func NewBufReader(r io.Reader) io.ReadCloser
NewBufReader returns a new bufReader.
func NewBufReaderWithDrainbufAndBuffer ¶
func NewBufReaderWithDrainbufAndBuffer(r io.Reader, drainBuffer []byte, buffer io.ReadWriter) io.ReadCloser
NewBufReaderWithDrainbufAndBuffer returns a BufReader with drainBuffer and buffer.
func NewReadCloserWrapper ¶
func NewReadCloserWrapper(r io.Reader, closer func() error) io.ReadCloser
NewReadCloserWrapper returns a new io.ReadCloser.
func NewReaderErrWrapper ¶
NewReaderErrWrapper returns a new io.Reader.
func NewWriteCloserWrapper ¶
func NewWriteCloserWrapper(r io.Writer, closer func() error) io.WriteCloser
NewWriteCloserWrapper returns a new io.WriteCloser.
func NopWriteCloser ¶
func NopWriteCloser(w io.Writer) io.WriteCloser
NopWriteCloser returns a nopWriteCloser.
Types ¶
type BytesPipe ¶
type BytesPipe struct {
// contains filtered or unexported fields
}
BytesPipe is io.ReadWriter which works similarly to pipe(queue). All written data could be read only once. Also BytesPipe is allocating and releasing new byte slices to adjust to current needs, so there won't be overgrown buffer after high load peak. BytesPipe isn't goroutine-safe, caller must synchronize it if needed.
func NewBytesPipe ¶
NewBytesPipe creates new BytesPipe, initialized by specified slice. If buf is nil, then it will be initialized with slice which cap is 64. buf will be adjusted in a way that len(buf) == 0, cap(buf) == cap(buf).
type NopFlusher ¶
type NopFlusher struct{}
NopFlusher represents a type which flush opetatin is nop.
type OnEOFReader ¶
type OnEOFReader struct { Rc io.ReadCloser Fn func() }
OnEOFReader wraps a io.ReadCloser and a function the function will run at the end of file or close the file.
func (*OnEOFReader) Close ¶
func (r *OnEOFReader) Close() error
Close closes the file and run the function.
type WriteCounter ¶
WriteCounter wraps a concrete io.Writer and hold a count of the number of bytes written to the writer during a "session". This can be convenient when write return is masked (e.g., json.Encoder.Encode())
func NewWriteCounter ¶
func NewWriteCounter(w io.Writer) *WriteCounter
NewWriteCounter returns a new WriteCounter.
type WriteFlusher ¶
type WriteFlusher struct {
// contains filtered or unexported fields
}
WriteFlusher wraps the Write and Flush operation ensuring that every write is a flush. In addition, the Close method can be called to intercept Read/Write calls if the targets lifecycle has already ended.
func NewWriteFlusher ¶
func NewWriteFlusher(w io.Writer) *WriteFlusher
NewWriteFlusher returns a new WriteFlusher.
func (*WriteFlusher) Close ¶
func (wf *WriteFlusher) Close() error
Close closes the write flusher, disallowing any further writes to the target. After the flusher is closed, all calls to write or flush will result in an error.
func (*WriteFlusher) Flushed ¶
func (wf *WriteFlusher) Flushed() bool
Flushed returns the state of flushed. If it's flushed, return true, or else it return false.
Notes ¶
Bugs ¶
Remove this method. Its use is inherently racy. Seems to be used to detect whether or a response code has been issued or not. Another hook should be used instead.