var (
    // ErrShortDst means that the destination buffer was too short to
    // receive all of the transformed bytes.
    ErrShortDst = errors.New("transform: short destination buffer")
    // ErrShortSrc means that the source buffer has insufficient data to
    // complete the transformation.
    ErrShortSrc = errors.New("transform: short source buffer")
    // ErrEndOfSpan means that the input and output (the transformed input)
    // are not identical.
    ErrEndOfSpan = errors.New("transform: input and output are not identical")
)
				
			
				var (
    // Discard is a Transformer for which all Transform calls succeed
    // by consuming all bytes and writing nothing.
    Discard Transformer = discard{}
    // Nop is a SpanningTransformer that copies src to dst.
    Nop SpanningTransformer = nop{}
)
				
			
		
		
			
			
			func Append(t Transformer, dst, src []byte) (result []byte, n int, err error)
Append appends the result of converting src[:n] using t to dst, where n <= len(src), If err == nil, n will be len(src). It calls Reset on t.
func Bytes(t Transformer, b []byte) (result []byte, n int, err error)
Bytes returns a new byte slice with the result of converting b[:n] using t, where n <= len(b). If err == nil, n will be len(b). It calls Reset on t.
func String(t Transformer, s string) (result string, n int, err error)
String returns a string with the result of converting s[:n] using t, where n <= len(s). If err == nil, n will be len(s). It calls Reset on t.
type NopResetter struct{}
			NopResetter can be embedded by implementations of Transformer to add a nop Reset method.
func (NopResetter) Reset()
Reset implements the Reset method of the Transformer interface.
type Reader struct {
    // contains filtered or unexported fields
}
			Reader wraps another io.Reader by transforming the bytes read.
func NewReader(r io.Reader, t Transformer) *Reader
NewReader returns a new Reader that wraps r by transforming the bytes read via t. It calls Reset on t.
func (r *Reader) Read(p []byte) (int, error)
Read implements the io.Reader interface.
type SpanningTransformer interface {
    Transformer
    // Span returns a position in src such that transforming src[:n] results in
    // identical output src[:n] for these bytes. It does not necessarily return
    // the largest such n. The atEOF argument tells whether src represents the
    // last bytes of the input.
    //
    // Callers should always account for the n bytes consumed before
    // considering the error err.
    //
    // A nil error means that all input bytes are known to be identical to the
    // output produced by the Transformer. A nil error can be be returned
    // regardless of whether atEOF is true. If err is nil, then then n must
    // equal len(src); the converse is not necessarily true.
    //
    // ErrEndOfSpan means that the Transformer output may differ from the
    // input after n bytes. Note that n may be len(src), meaning that the output
    // would contain additional bytes after otherwise identical output.
    // ErrShortSrc means that src had insufficient data to determine whether the
    // remaining bytes would change. Other than the error conditions listed
    // here, implementations are free to report other errors that arise.
    //
    // Calling Span can modify the Transformer state as a side effect. In
    // effect, it does the transformation just as calling Transform would, only
    // without copying to a destination buffer and only up to a point it can
    // determine the input and output bytes are the same. This is obviously more
    // limited than calling Transform, but can be more efficient in terms of
    // copying and allocating buffers. Calls to Span and Transform may be
    // interleaved.
    Span(src []byte, atEOF bool) (n int, err error)
}
			SpanningTransformer extends the Transformer interface with a Span method that determines how much of the input already conforms to the Transformer.
type Transformer interface {
    // Transform writes to dst the transformed bytes read from src, and
    // returns the number of dst bytes written and src bytes read. The
    // atEOF argument tells whether src represents the last bytes of the
    // input.
    //
    // Callers should always process the nDst bytes produced and account
    // for the nSrc bytes consumed before considering the error err.
    //
    // A nil error means that all of the transformed bytes (whether freshly
    // transformed from src or left over from previous Transform calls)
    // were written to dst. A nil error can be returned regardless of
    // whether atEOF is true. If err is nil then nSrc must equal len(src);
    // the converse is not necessarily true.
    //
    // ErrShortDst means that dst was too short to receive all of the
    // transformed bytes. ErrShortSrc means that src had insufficient data
    // to complete the transformation. If both conditions apply, then
    // either error may be returned. Other than the error conditions listed
    // here, implementations are free to report other errors that arise.
    Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error)
    // Reset resets the state and allows a Transformer to be reused.
    Reset()
}
			Transformer transforms bytes.
func Chain(t ...Transformer) Transformer
Chain returns a Transformer that applies t in sequence.
func RemoveFunc(f func(r rune) bool) Transformer
Deprecated: use runes.Remove instead.
▹ Example
type Writer struct {
    // contains filtered or unexported fields
}
			Writer wraps another io.Writer by transforming the bytes read. The user needs to call Close to flush unwritten bytes that may be buffered.
func NewWriter(w io.Writer, t Transformer) *Writer
NewWriter returns a new Writer that wraps w by transforming the bytes written via t. It calls Reset on t.
func (w *Writer) Close() error
Close implements the io.Closer interface.
func (w *Writer) Write(data []byte) (n int, err error)
Write implements the io.Writer interface. If there are not enough bytes available to complete a Transform, the bytes will be buffered for the next write. Call Close to convert the remaining bytes.