code: func (s *Stream) Fetcher(c context.Context, o *fetcher.Options) *fetcher.Fetcher {
  	if o == nil {
  		o = &fetcher.Options{}
  	} else {
  		o = &(*o)
  	}
  	o.Source = &coordinatorSource{
  		stream: s, tidx: -1, requireCompleteStream: o.RequireCompleteStream}
  	return fetcher.New(c, *o)
  }
docs: // Fetcher returns a Fetcher implementation for this Stream.
  //
  // If you pass a nil fetcher.Options, a default option set will be used. The
  // o.Source field will always be overwritten to be based off this stream.