code: func NewReader(r io.Reader, maxSize int64) Reader {
  	br, ok := r.(io.ByteReader)
  	if !ok {
  		br = &simpleByteReader{Reader: r}
  	}
  	return &reader{
  		Reader:     r,
  		ByteReader: br,
  		maxSize:    maxSize,
  	}
  }
docs: // NewReader creates a new Reader which reads frame data from the
  // supplied Reader instance.
  //
  // If the Reader instance is also an io.ByteReader, its ReadByte method will
  // be used directly.