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を返します。スペース、および制御文字は無視されます。大抵の場合、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
Trackback URL
Leave a comment
Comments