// Generated by Lisette bindgen
// Source: encoding/ascii85 (Go stdlib)
// Go: 1.25.5
// Lisette: 0.1.14

import "go:io"

/// 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.
pub fn Decode(mut dst: Slice<uint8>, src: Slice<uint8>, flush: bool) -> Result<(int, int), error>

/// 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.
pub fn Encode(mut dst: Slice<uint8>, src: Slice<uint8>) -> int

/// MaxEncodedLen returns the maximum length of an encoding of n source bytes.
pub fn MaxEncodedLen(n: int) -> int

/// NewDecoder constructs a new ascii85 stream decoder.
pub fn NewDecoder(r: io.Reader) -> io.Reader

/// 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.
pub fn NewEncoder(w: io.Writer) -> io.WriteCloser

pub struct CorruptInputError(int64)

impl CorruptInputError {
  fn Error(self) -> string
}
