import "encoding/ascii85"

btoaツール、Adobe社のPostScript、PDFドキュメント形式で使用されているascii85データエンコーディングを実装しています。

パッケージファイル

ascii85.go

Decode関数

func Decode(dst, src []byte, flush bool) (ndst, nsrc int, err os.Error)

Decodeは、指定されたsrcをdstへデコードし、書き込んだバイト数と読み込んだバイト数の両方を返します。srcに無効なascii85データが含まれていた場合、書き込みに成功したバイト数とCorruptInputErrorを返します。src内のスペース、および制御文字は無視されます。大抵の場合、ascii85でエンコードされたデータは”<~”、”~>”で囲まれるので、呼び出し側で削除してください。

flushがtrueの場合、srcの入力ストリームの最後まで読み込んだとして別の32ビットブロックの完了を待たずに処理を完了させます。

NewDecoderは、io.ReaderインタフェースのDecode関連をラップします。

Encode関数

func Encode(dst, src []byte) int

Encodeは、指定されたsrcをdstへ最大MaxEncodedLen(len(src))バイトをエンコードし、実際に書き込んだバイト数を返します。

エンコーディングはチャンクサイズ4バイトで処理し、最後のフラグメントに特別なエンコードを使用するので大きなデータストリームの個々のブロックで使用するのは適切ではありません。代わりにNewEncoder()を使用してください。

大抵の場合、ascii85でエンコードされたデータは”<~”、”~>”で囲まれますが、本関数ではそれらを加えません。

MaxEncodedLen関数

func MaxEncodedLen(n int) int

MaxEncodedLenは、ソースをnバイト、エンコーディングしたときの最大長を返します。

NewDecoder関数

func NewDecoder(r io.Reader) io.Reader

NewDecoderは、ascii85ストリームデコーダを作成します。

NewEncoder関数

func NewEncoder(w io.Writer) io.WriteCloser

NewEncoderは、新しいascii85ストリームエンコーダを返します。返されるライタへデータを書き込むと、エンコードされてwへ書き込まれます。ascii85エンコーディングは32ビットブロックで処理します。書き込みが終了した際、残りのブロックをフラッシュするため呼び出し元で返されたエンコーダに対して必ずCloseを呼び出してください。

CorruptInputError型

type CorruptInputError int64

(CorruptInputError) String関数

func (e CorruptInputError) String() string