code: func UnmarshalManifest(ctHeader string, p []byte) (Manifest, Descriptor, error) {
  	// Need to look up by the actual media type, not the raw contents of
  	// the header. Strip semicolons and anything following them.
  	var mediaType string
  	if ctHeader != "" {
  		var err error
  		mediaType, _, err = mime.ParseMediaType(ctHeader)
  		if err != nil {
  			return nil, Descriptor{}, err
  		}
  	}
  
  	unmarshalFunc, ok := mappings[mediaType]
  	if !ok {
  		unmarshalFunc, ok = mappings[""]
  		if !ok {
  			return nil, Descriptor{}, fmt.Errorf("unsupported manifest media type and no default available: %s", mediaType)
  		}
  	}
  
  	return unmarshalFunc(p)
  }
docs: // UnmarshalManifest looks up manifest unmarshal functions based on
  // MediaType