code: func NewTarSumForLabel(r io.Reader, disableCompression bool, label string) (TarSum, error) {
  	parts := strings.SplitN(label, "+", 2)
  	if len(parts) != 2 {
  		return nil, errors.New("tarsum label string should be of the form: {tarsum_version}+{hash_name}")
  	}
  
  	versionName, hashName := parts[0], parts[1]
  
  	version, ok := tarSumVersionsByName[versionName]
  	if !ok {
  		return nil, fmt.Errorf("unknown TarSum version name: %q", versionName)
  	}
  
  	hashConfig, ok := standardHashConfigs[hashName]
  	if !ok {
  		return nil, fmt.Errorf("unknown TarSum hash name: %q", hashName)
  	}
  
  	tHash := NewTHash(hashConfig.name, hashConfig.hash.New)
  
  	return NewTarSumHash(r, disableCompression, version, tHash)
  }
docs: // NewTarSumForLabel creates a new TarSum using the provided TarSum version+hash label.