func (r *Reader) Read(p []byte) (n int, err error) {
	for i := range p {
		if p[i], err = r.ReadByte(); err != nil {
			return i, err
		}
	}
	return len(p), nil
}
Read decompresses up to len(p) bytes from the source.
package hufio
import (
	"io"
	"github.com/icza/bitio"
	"github.com/icza/huffman"
)
type Reader struct {
	*symbols
	br *bitio.Reader
}
func NewReader(in io.Reader) *Reader {
	return NewReaderOptions(in, nil)
}
func NewReaderOptions(in io.Reader, o *Options) *Reader {
	o = checkOptions(o)
	return &Reader{symbols: newSymbols(o), br: bitio.NewReader(in)}
}