code: func (r *Result) Watch(resourceVersion string) (watch.Interface, error) {
  	if r.err != nil {
  		return nil, r.err
  	}
  	if len(r.sources) != 1 {
  		return nil, fmt.Errorf("you may only watch a single resource or type of resource at a time")
  	}
  	w, ok := r.sources[0].(Watchable)
  	if !ok {
  		info, err := r.Infos()
  		if err != nil {
  			return nil, err
  		}
  		if len(info) != 1 {
  			return nil, fmt.Errorf("watch is only supported on individual resources and resource collections - %d resources were found", len(info))
  		}
  		return info[0].Watch(resourceVersion)
  	}
  	return w.Watch(resourceVersion)
  }
docs: // Watch retrieves changes that occur on the server to the specified resource.
  // It currently supports watching a single source - if the resource source
  // (selectors or pure types) can be watched, they will be, otherwise the list
  // will be visited (equivalent to the Infos() call) and if there is a single
  // resource present, it will be watched, otherwise an error will be returned.