Imports #
"io"
"log"
"bytes"
"errors"
"fmt"
"io"
"io"
"io"
"log"
"bytes"
"errors"
"fmt"
"io"
"io"
ErrTimeout is a fake timeout error.
var ErrTimeout = *ast.CallExprtype dataErrReader struct {
r io.Reader
unread []byte
data []byte
}type errReader struct {
err error
}type halfReader struct {
r io.Reader
}type oneByteReader struct {
r io.Reader
}type readLogger struct {
prefix string
r io.Reader
}type smallByteReader struct {
r io.Reader
off int
n int
}type timeoutReader struct {
r io.Reader
count int
}type truncateWriter struct {
w io.Writer
n int64
}type writeLogger struct {
prefix string
w io.Writer
}DataErrReader changes the way errors are handled by a Reader. Normally, a Reader returns an error (typically EOF) from the first Read call after the last piece of data is read. DataErrReader wraps a Reader and changes its behavior so the final error is returned along with the final data, instead of in the first call after the final data.
func DataErrReader(r io.Reader) io.ReaderErrReader returns an [io.Reader] that returns 0, err from all Read calls.
func ErrReader(err error) io.ReaderHalfReader returns a Reader that implements Read by reading half as many requested bytes from r.
func HalfReader(r io.Reader) io.ReaderNewReadLogger returns a reader that behaves like r except that it logs (using [log.Printf]) each read to standard error, printing the prefix and the hexadecimal data read.
func NewReadLogger(prefix string, r io.Reader) io.ReaderNewWriteLogger returns a writer that behaves like w except that it logs (using [log.Printf]) each write to standard error, printing the prefix and the hexadecimal data written.
func NewWriteLogger(prefix string, w io.Writer) io.WriterOneByteReader returns a Reader that implements each non-empty Read by reading one byte from r.
func OneByteReader(r io.Reader) io.Readerfunc (r *timeoutReader) Read(p []byte) (int, error)func (l *readLogger) Read(p []byte) (n int, err error)func (r *dataErrReader) Read(p []byte) (n int, err error)func (r *oneByteReader) Read(p []byte) (int, error)func (r *halfReader) Read(p []byte) (int, error)func (r *errReader) Read(p []byte) (int, error)func (r *smallByteReader) Read(p []byte) (int, error)TimeoutReader returns [ErrTimeout] on the second read with no data. Subsequent calls to read succeed.
func TimeoutReader(r io.Reader) io.ReaderTruncateWriter returns a Writer that writes to w but stops silently after n bytes.
func TruncateWriter(w io.Writer, n int64) io.Writerfunc (l *writeLogger) Write(p []byte) (n int, err error)func (t *truncateWriter) Write(p []byte) (n int, err error)Generated with Arrow