manifest/manifest.go
func FromBlob(manblob []byte, mt string) (Manifest, error) {
	switch NormalizedMIMEType(mt) {
	case DockerV2Schema1MediaType, DockerV2Schema1SignedMediaType:
		return Schema1FromManifest(manblob)
	case imgspecv1.MediaTypeImageManifest:
		return OCI1FromManifest(manblob)
	case DockerV2Schema2MediaType:
		return Schema2FromManifest(manblob)
	case DockerV2ListMediaType:
		return nil, fmt.Errorf("Treating manifest lists as individual manifests is not implemented")
	default: // Note that this may not be reachable, NormalizedMIMEType has a default for unknown values.
		return nil, fmt.Errorf("Unimplemented manifest MIME type %s", mt)
	}
}
func FromBlob(manblob []byte, mt string) (Manifest, error) {
	switch NormalizedMIMEType(mt) {
	case DockerV2Schema1MediaType, DockerV2Schema1SignedMediaType:
		return Schema1FromManifest(manblob)
	case imgspecv1.MediaTypeImageManifest:
		return OCI1FromManifest(manblob)
	case DockerV2Schema2MediaType:
		return Schema2FromManifest(manblob)
	case DockerV2ListMediaType:
		return nil, fmt.Errorf("Treating manifest lists as individual manifests is not implemented")
	default: // Note that this may not be reachable, NormalizedMIMEType has a default for unknown values.
		return nil, fmt.Errorf("Unimplemented manifest MIME type %s", mt)
	}
}
// FromBlob returns a Manifest instance for the specified manifest blob and the corresponding MIME type