func newGzip(b *siegreader.Buffer, path string) (decompressor, error) { _ = b.SizeNow() // in case of a stream, force full read buf, err := b.EofSlice(0, 4) // gzip stores uncompressed size in last 4 bytes of the stream if err != nil { return nil, err } sz := int64(uint32(buf[0]) | uint32(buf[1])<<8 | uint32(buf[2])<<16 | uint32(buf[3])<<24) g, err := gzip.NewReader(siegreader.ReaderFrom(b)) return &gzipD{sz: sz, p: path, rdr: g}, err }
func zipRdr(b *siegreader.Buffer) (Reader, error) { r, err := zip.NewReader(siegreader.ReaderFrom(b), b.SizeNow()) return &zipReader{idx: -1, rdr: r}, err }