github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/compress/flate/inflate.go (about)

     1  // Copyright 2009 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // Package flateは、DEFLATE圧縮データ形式を実装しています。RFC 1951で説明されています。
     6  // gzipとzlibパッケージは、DEFLATEベースのファイル形式へのアクセスを実装しています。
     7  package flate
     8  
     9  import (
    10  	"github.com/shogo82148/std/io"
    11  )
    12  
    13  // CorruptInputError は指定されたオフセットで破損した入力の存在を報告します。
    14  type CorruptInputError int64
    15  
    16  func (e CorruptInputError) Error() string
    17  
    18  // InternalErrorはflateコード自体のエラーを報告します。
    19  type InternalError string
    20  
    21  func (e InternalError) Error() string
    22  
    23  // ReadErrorは、入力を読み取る中で遭遇したエラーを報告します。
    24  //
    25  // Deprecated: もはや返されません。
    26  type ReadError struct {
    27  	Offset int64
    28  	Err    error
    29  }
    30  
    31  func (e *ReadError) Error() string
    32  
    33  // WriteErrorは出力の書き込み中に遭遇したエラーを報告します。
    34  //
    35  // Deprecated: もう返されません。
    36  type WriteError struct {
    37  	Offset int64
    38  	Err    error
    39  }
    40  
    41  func (e *WriteError) Error() string
    42  
    43  // Resetterは [NewReader] または [NewReaderDict] が返すReadCloserをリセットし、新しい基になる [Reader] に切り替えます。これにより、新しいものを割り当てる代わりにReadCloserを再利用することができます。
    44  type Resetter interface {
    45  	Reset(r io.Reader, dict []byte) error
    46  }
    47  
    48  // [NewReader] で必要とされる実際の読み取りインターフェース。
    49  // 渡された io.Reader が ReadByte も持っていない場合、
    50  // [NewReader] は自身のバッファリングを導入します。
    51  type Reader interface {
    52  	io.Reader
    53  	io.ByteReader
    54  }
    55  
    56  // NewReader returns a new ReadCloser that can be used
    57  // to read the uncompressed version of r.
    58  // If r does not also implement [io.ByteReader],
    59  // the decompressor may read more data than necessary from r.
    60  // The reader returns [io.EOF] after the final block in the DEFLATE stream has
    61  // been encountered. Any trailing data after the final block is ignored.
    62  //
    63  // NewReaderによって返される [io.ReadCloser] は、 [Resetter] も実装しています。
    64  func NewReader(r io.Reader) io.ReadCloser
    65  
    66  // NewReaderDictは [NewReader] と同じようにリーダーを初期化しますが、
    67  // 事前に設定された辞書でリーダーを初期化します。
    68  // 返されたリーダーは、与えられた辞書で圧縮解除されたデータストリームが開始されたかのように振る舞います。
    69  // この辞書は既に読み取られています。通常、NewWriterDictで圧縮されたデータを読み込むためにNewReaderDictが使用されます。
    70  //
    71  // NewReaderによって返されたReadCloserは [Resetter] も実装しています。
    72  func NewReaderDict(r io.Reader, dict []byte) io.ReadCloser