func AllManifests(ctx context.Context, from imagereference.DockerImageReference, repo distribution.Repository) (map[digest.Digest]distribution.Manifest, *manifestlist.DeserializedManifestList, digest.Digest, error) {
	var srcDigest digest.Digest
	if len(from.ID) > 0 {
		srcDigest = digest.Digest(from.ID)
	} else if len(from.Tag) > 0 {
		desc, err := repo.Tags(ctx).Get(ctx, from.Tag)
		if err != nil {
			return nil, nil, "", err
		}
		srcDigest = desc.Digest
	} else {
		return nil, nil, "", fmt.Errorf("no tag or digest specified")
	}
	manifests, err := repo.Manifests(ctx)
	if err != nil {
		return nil, nil, "", err
	}
	srcManifest, err := manifests.Get(ctx, srcDigest, PreferManifestList)
	if err != nil {
		return nil, nil, "", err
	}

	return ManifestsFromList(ctx, srcDigest, srcManifest, manifests, from)
}
// AllManifests returns all non-list manifests, the list manifest (if any), the digest the from refers to, or an error.
AllManifests returns all non-list manifests, the list manifest (if any), the digest the from refers to, or an error.
// AllManifests returns all non - list manifests the list manifest ( if any ) the digest the from refers to or an error .
func AllManifests(ctx context.Context, from imagereference.DockerImageReference, repo distribution.Repository) (map[digest.Digest]distribution.Manifest, *manifestlist.DeserializedManifestList, digest.Digest, error) {
	var srcDigest digest.Digest
	if len(from.ID) > 0 {
		srcDigest = digest.Digest(from.ID)
	} else if len(from.Tag) > 0 {
		desc, err := repo.Tags(ctx).Get(ctx, from.Tag)
		if err != nil {
			return nil, nil, "", err
		}
		srcDigest = desc.Digest
	} else {
		return nil, nil, "", fmt.Errorf("no tag or digest specified")
	}
	manifests, err := repo.Manifests(ctx)
	if err != nil {
		return nil, nil, "", err
	}
	srcManifest, err := manifests.Get(ctx, srcDigest, PreferManifestList)
	if err != nil {
		return nil, nil, "", err
	}
	return ManifestsFromList(ctx, srcDigest, srcManifest, manifests, from)
}
func AllManifests ( ctx context . Context , from imagereference . DockerImageReference , repo distribution . Repository ) ( map [ digest . Digest ] distribution . Manifest , * manifestlist . DeserializedManifestList , digest . Digest , error ) { var srcDigest digest . Digest if len ( from . ID ) > 0 { srcDigest = digest . Digest ( from . ID ) } else if len ( from . Tag ) > 0 { desc , err := repo . Tags ( ctx ) . Get ( ctx , from . Tag ) if err != nil { return nil , nil , " " , err } srcDigest = desc . Digest } else { return nil , nil , " " , fmt . Errorf ( " " ) } manifests , err := repo . Manifests ( ctx ) if err != nil { return nil , nil , " " , err } srcManifest , err := manifests . Get ( ctx , srcDigest , PreferManifestList ) if err != nil { return nil , nil , " " , err } return ManifestsFromList ( ctx , srcDigest , srcManifest , manifests , from ) }
AllManifests returns all non-list manifests, the list manifest (if any), the digest the from refers to, or an error.
AllManifests returns all non - list manifests the list manifest ( if any ) the digest the from refers to or an error .