code: func (p RootPathParticle) PathFromNewRoot(inventoryPath string, newParticle RootPathParticle, relative string) (string, error) {
  	rootPath, err := p.NewRootFromPath(inventoryPath, newParticle)
  	if err != nil {
  		return inventoryPath, err
  	}
  	return path.Clean(fmt.Sprintf("%s/%s", rootPath, relative)), nil
  }
docs: // PathFromNewRoot takes the datacenter path for a specific entity, and then
  // appends the new particle supplied with the new relative path.
  //
  // As an example, consider a supplied host path "/dc1/host/cluster1/esxi1", and
  // a supplied datastore folder relative path of "/foo/bar".  This function will
  // split off the datacenter section of the path (/dc1) and combine it with the
  // datastore folder with the proper delimiter. The resulting path will be
  // "/dc1/datastore/foo/bar".