code: func (r *View) Index(needle []byte) int64 {
  	if r.Remaining() == 0 {
  		return -1
  	}
  	if len(needle) == 0 {
  		return 0
  	}
  
  	rc := r.Clone()
  	if !rc.indexDestructive(needle) {
  		return -1
  	}
  	return rc.consumed - r.consumed
  }
docs: // Index scans the View for the specified needle bytes. If they are
  // found, their index in the View is returned. Otherwise, Index returns
  // -1.
  //
  // The View is not modified during the search.