in grpc-xds/control-plane-go/pkg/applications/application.go [58:87]
func (a Application) Compare(b Application) int {
if a.Namespace != b.Namespace {
return strings.Compare(a.Namespace, b.Namespace)
}
if a.ServiceAccountName != b.ServiceAccountName {
return strings.Compare(a.ServiceAccountName, b.ServiceAccountName)
}
if a.Name != b.Name {
return strings.Compare(a.Name, b.Name)
}
if a.PathPrefix != b.PathPrefix {
return strings.Compare(a.PathPrefix, b.PathPrefix)
}
if a.ServingPort != b.ServingPort {
return int(a.ServingPort - b.ServingPort)
}
if a.ServingProtocol != b.ServingProtocol {
return strings.Compare(a.ServingProtocol, b.ServingProtocol)
}
if a.HealthCheckPort != b.HealthCheckPort {
return int(a.HealthCheckPort - b.HealthCheckPort)
}
if a.HealthCheckProtocol != b.HealthCheckProtocol {
return strings.Compare(a.HealthCheckProtocol, b.HealthCheckProtocol)
}
return slices.CompareFunc(a.Endpoints, b.Endpoints,
func(e ApplicationEndpoints, f ApplicationEndpoints) int {
return e.Compare(f)
})
}