Source File
writer.go
Belonging Package
compress/zlib
package zlib
import (
)
func ( io.Writer) *Writer {
, := NewWriterLevelDict(, DefaultCompression, nil)
return
}
if .compressor != nil {
.compressor.Reset()
}
if .digest != nil {
.digest.Reset()
}
.err = nil
.scratch = [4]byte{}
.wroteHeader = false
}
switch .level {
case -2, 0, 1:
.scratch[1] = 0 << 6
case 2, 3, 4, 5:
.scratch[1] = 1 << 6
case 6, -1:
.scratch[1] = 2 << 6
case 7, 8, 9:
.scratch[1] = 3 << 6
default:
panic("unreachable")
}
if .dict != nil {
.scratch[1] |= 1 << 5
}
.scratch[1] += uint8(31 - (uint16(.scratch[0])<<8+uint16(.scratch[1]))%31)
if _, = .w.Write(.scratch[0:2]); != nil {
return
}
func ( *Writer) () error {
if !.wroteHeader {
.err = .writeHeader()
}
if .err != nil {
return .err
}
.err = .compressor.Flush()
return .err
}
func ( *Writer) () error {
if !.wroteHeader {
.err = .writeHeader()
}
if .err != nil {
return .err
}
.err = .compressor.Close()
if .err != nil {
return .err
}
![]() |
The pages are generated with Golds v0.3.2-preview. (GOOS=darwin GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |