code: func ParseFullDockerRegistryURL(s string) (*DockerRegistryURL, error) {
  	s = handleSchemelessQuayRegistries(s)
  
  	registryURL := &DockerRegistryURL{
  		Scheme: "https",
  	}
  
  	u, err := url.Parse(s)
  	if err != nil {
  		return nil, err
  	}
  
  	if u.Scheme == "" || u.Host == "" {
  		return registryURL, fmt.Errorf("Registry URL must provide a scheme and host: %q", s)
  	}
  
  	registryURL.Scheme = u.Scheme
  	registryURL.Userinfo = u.User
  
  	host, port, err := splitHostPort(u.Host)
  	if err != nil {
  		return nil, err
  	}
  	registryURL.Host = host
  	registryURL.Port = port
  
  	// Parse everything after <scheme>://<host>:<port>
  	err = registryURL.parsePath(u.Path)
  	if err != nil {
  		return nil, err
  	}
  	return registryURL, nil
  }
docs: // ParseFullDockerRegistryURL validates an input string URL to make sure
  // that it conforms to the Docker V1 registry URL schema.