func (mem *cache) appendReplacementCandidates(candidates []prioritize.CandidateWithTime, transport types.ImageTransport, scope types.BICTransportScope, digest digest.Digest) []prioritize.CandidateWithTime {
	locations := mem.knownLocations[locationKey{transport: transport.Name(), scope: scope, blobDigest: digest}] // nil if not present
	for l, t := range locations {
		candidates = append(candidates, prioritize.CandidateWithTime{
			Candidate: types.BICReplacementCandidate{
				Digest:   digest,
				Location: l,
			},
			LastSeen: t,
		})
	}
	return candidates
}
func (mem *cache) appendReplacementCandidates(candidates []prioritize.CandidateWithTime, transport types.ImageTransport, scope types.BICTransportScope, digest digest.Digest) []prioritize.CandidateWithTime {
	locations := mem.knownLocations[locationKey{transport: transport.Name(), scope: scope, blobDigest: digest}] 
	for l, t := range locations {
		candidates = append(candidates, prioritize.CandidateWithTime{
			Candidate: types.BICReplacementCandidate{
				Digest:   digest,
				Location: l,
			},
			LastSeen: t,
		})
	}
	return candidates
}
func ( mem * cache ) appendReplacementCandidates ( candidates [ ] prioritize . CandidateWithTime , transport types . ImageTransport , scope types . BICTransportScope , digest digest . Digest ) [ ] prioritize . CandidateWithTime { locations := mem . knownLocations [ locationKey { transport : transport . Name ( ) , scope : scope , blobDigest : digest } ] // nil if not present for l , t := range locations { candidates = append ( candidates , prioritize . CandidateWithTime { Candidate : types . BICReplacementCandidate { Digest : digest , Location : l , } , LastSeen : t , } ) } return candidates }
// appendReplacementCandiates creates prioritize.CandidateWithTime values for (transport, scope, digest), and returns the result of appending them to candidates.
appendReplacementCandiates creates prioritize . CandidateWithTime values for ( transport scope digest ) and returns the result of appending them to candidates .