code: func (s *stream) Read(p []byte) (int, error) {
  	if s.remaining <= 0 {
  		return 0, io.EOF
  	}
  	if s.remaining < int64(len(p)) {
  		p = p[0:s.remaining]
  	}
  	n, err := s.src.Read(p)
  	s.remaining -= int64(n)
  	return n, err
  }
docs: // Read is implementation of io.Reader's Read.