// Encode encodes src into at most [MaxEncodedLen](len(src)) // bytes of dst, returning the actual number of bytes written. // // The encoding handles 4-byte chunks, using a special encoding // for the last fragment, so Encode is not appropriate for use on // individual blocks of a large data stream. Use [NewEncoder] instead. // // Often, ascii85-encoded data is wrapped in <~ and ~> symbols. // Encode does not add these. func Encode(dst, src []byte) int { … } // MaxEncodedLen returns the maximum length of an encoding of n source bytes. func MaxEncodedLen(n int) int { … } // NewEncoder returns a new ascii85 stream encoder. Data written to // the returned writer will be encoded and then written to w. // Ascii85 encodings operate in 32-bit blocks; when finished // writing, the caller must Close the returned encoder to flush any // trailing partial block. func NewEncoder(w io.Writer) io.WriteCloser { … } type encoder … func (e *encoder) Write(p []byte) (n int, err error) { … } // Close flushes any pending output from the encoder. // It is an error to call Write after calling Close. func (e *encoder) Close() error { … } type CorruptInputError … func (e CorruptInputError) Error() string { … } // Decode decodes src into dst, returning both the number // of bytes written to dst and the number consumed from src. // If src contains invalid ascii85 data, Decode will return the // number of bytes successfully written and a [CorruptInputError]. // Decode ignores space and control characters in src. // Often, ascii85-encoded data is wrapped in <~ and ~> symbols. // Decode expects these to have been stripped by the caller. // // If flush is true, Decode assumes that src represents the // end of the input stream and processes it completely rather // than wait for the completion of another 32-bit block. // // [NewDecoder] wraps an [io.Reader] interface around Decode. func Decode(dst, src []byte, flush bool) (ndst, nsrc int, err error) { … } // NewDecoder constructs a new ascii85 stream decoder. func NewDecoder(r io.Reader) io.Reader { … } type decoder … func (d *decoder) Read(p []byte) (n int, err error) { … }