forked from TrueCloudLab/distribution
429c75faf0
Add interface for for a normalized name and corresponding parser for that type. New normalized versions of all interfaces are not added since all type information is preserved on calls to Familiar. Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
30 lines
735 B
Go
30 lines
735 B
Go
package reference
|
|
|
|
// IsNameOnly returns true if reference only contains a repo name.
|
|
func IsNameOnly(ref Named) bool {
|
|
if _, ok := ref.(NamedTagged); ok {
|
|
return false
|
|
}
|
|
if _, ok := ref.(Canonical); ok {
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
// FamiliarName returns the familiar name string
|
|
// for the given named, familiarizing if needed.
|
|
func FamiliarName(ref Named) string {
|
|
if nn, ok := ref.(NormalizedNamed); ok {
|
|
return nn.Familiar().Name()
|
|
}
|
|
return ref.Name()
|
|
}
|
|
|
|
// FamiliarString returns the familiar string representation
|
|
// for the given reference, familiarizing if needed.
|
|
func FamiliarString(ref Reference) string {
|
|
if nn, ok := ref.(NormalizedNamed); ok {
|
|
return nn.Familiar().String()
|
|
}
|
|
return ref.String()
|
|
}
|