// NewReader creates a new Reader reading the given reader. func NewReader(r io.Reader) (io.ReadCloser, error) { z := &reader{ r: r, h: xxhash.New(0), } if err := z.readFrame(); err != nil { return nil, err } return z, nil }
// NewWriterLevel is like NewWriter but specifies the compression level instead // of assuming the default compression level. func NewWriterLevel(w io.Writer, level int) (io.WriteCloser, error) { if level < defaultCompression || level > BestCompression { return nil, fmt.Errorf("lz4: invalid compression level: %d", level) } return &writer{ level: level, w: w, h: xxhash.New(0), }, nil }
// newBitReader returns a new bitReader reading from r. If r is not // already an io.ByteReader, it will be converted via a bufio.Reader. func newBitReader(r io.Reader) bitReader { br, ok := r.(io.ByteReader) if !ok { br = bufio.NewReader(r) } return bitReader{ r: br, h: xxhash.New(0), } }