NewWriter implements the compress.Codec interface.
(w io.Writer)
| 66 | |
| 67 | // NewWriter implements the compress.Codec interface. |
| 68 | func (c *Codec) NewWriter(w io.Writer) io.WriteCloser { |
| 69 | x, _ := writerPool.Get().(*xerialWriter) |
| 70 | if x != nil { |
| 71 | x.Reset(w) |
| 72 | } else { |
| 73 | x = &xerialWriter{writer: w} |
| 74 | } |
| 75 | x.framed = c.Framing == Framed |
| 76 | switch c.Compression { |
| 77 | case FasterCompression: |
| 78 | x.encode = s2.EncodeSnappy |
| 79 | case BetterCompression: |
| 80 | x.encode = s2.EncodeSnappyBetter |
| 81 | case BestCompression: |
| 82 | x.encode = s2.EncodeSnappyBest |
| 83 | default: |
| 84 | x.encode = snappy.Encode // aka. s2.EncodeSnappyBetter |
| 85 | } |
| 86 | return &writer{xerialWriter: x} |
| 87 | } |
| 88 | |
| 89 | type reader struct{ *xerialReader } |
| 90 |