| 185 | } |
| 186 | |
| 187 | func (f *vfsgen۰CompressedFile) Read(p []byte) (n int, err error) { |
| 188 | if f.grPos > f.seekPos { |
| 189 | // Rewind to beginning. |
| 190 | err = f.gr.Reset(bytes.NewReader(f.compressedContent)) |
| 191 | if err != nil { |
| 192 | return 0, err |
| 193 | } |
| 194 | f.grPos = 0 |
| 195 | } |
| 196 | if f.grPos < f.seekPos { |
| 197 | // Fast-forward. |
| 198 | _, err = io.CopyN(io.Discard, f.gr, f.seekPos-f.grPos) |
| 199 | if err != nil { |
| 200 | return 0, err |
| 201 | } |
| 202 | f.grPos = f.seekPos |
| 203 | } |
| 204 | n, err = f.gr.Read(p) |
| 205 | f.grPos += int64(n) |
| 206 | f.seekPos = f.grPos |
| 207 | return n, err |
| 208 | } |
| 209 | func (f *vfsgen۰CompressedFile) Seek(offset int64, whence int) (int64, error) { |
| 210 | switch whence { |
| 211 | case io.SeekStart: |