code: func (d *Decoder) Read(buf []byte) (int, error) {
  	for len(d.buf) == 0 {
  		if err := d.readFrame(); err != nil {
  			return 0, err
  		}
  	}
  	n := copy(buf, d.buf)
  	d.buf = d.buf[n:]
  	d.pos += int64(n)
  	return n, nil
  }
docs: // Read is io.Reader's Read.