chore: use cmp (#568)

This commit is contained in:
UUBulb 2024-12-08 20:21:35 +08:00 committed by GitHub
parent 96b254a7b1
commit 2bc3d38b83
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 10 additions and 47 deletions

View File

@ -145,40 +145,3 @@ func Itoa[T constraints.Integer](i T) string {
return "" return ""
} }
} }
// From go1.23
// Compare returns
//
// -1 if x is less than y,
// 0 if x equals y,
// +1 if x is greater than y.
//
// For floating-point types, a NaN is considered less than any non-NaN,
// a NaN is considered equal to a NaN, and -0.0 is equal to 0.0.
func Compare[T constraints.Ordered](x, y T) int {
xNaN := isNaN(x)
yNaN := isNaN(y)
if xNaN {
if yNaN {
return 0
}
return -1
}
if yNaN {
return +1
}
if x < y {
return -1
}
if x > y {
return +1
}
return 0
}
// isNaN reports whether x is a NaN without requiring the math package.
// This will always return false if T is not floating-point.
func isNaN[T constraints.Ordered](x T) bool {
return x != x
}

View File

@ -1,6 +1,7 @@
package singleton package singleton
import ( import (
"cmp"
"fmt" "fmt"
"slices" "slices"
"strings" "strings"
@ -11,7 +12,6 @@ import (
"github.com/robfig/cron/v3" "github.com/robfig/cron/v3"
"github.com/nezhahq/nezha/model" "github.com/nezhahq/nezha/model"
"github.com/nezhahq/nezha/pkg/utils"
pb "github.com/nezhahq/nezha/proto" pb "github.com/nezhahq/nezha/proto"
) )
@ -84,7 +84,7 @@ func UpdateCronList() {
CronList = append(CronList, c) CronList = append(CronList, c)
} }
slices.SortFunc(CronList, func(a, b *model.Cron) int { slices.SortFunc(CronList, func(a, b *model.Cron) int {
return utils.Compare(a.ID, b.ID) return cmp.Compare(a.ID, b.ID)
}) })
} }

View File

@ -1,6 +1,7 @@
package singleton package singleton
import ( import (
"cmp"
"fmt" "fmt"
"slices" "slices"
"sync" "sync"
@ -12,7 +13,6 @@ import (
ddns2 "github.com/nezhahq/nezha/pkg/ddns" ddns2 "github.com/nezhahq/nezha/pkg/ddns"
"github.com/nezhahq/nezha/pkg/ddns/dummy" "github.com/nezhahq/nezha/pkg/ddns/dummy"
"github.com/nezhahq/nezha/pkg/ddns/webhook" "github.com/nezhahq/nezha/pkg/ddns/webhook"
"github.com/nezhahq/nezha/pkg/utils"
) )
var ( var (
@ -61,7 +61,7 @@ func UpdateDDNSList() {
DDNSList = append(DDNSList, p) DDNSList = append(DDNSList, p)
} }
slices.SortFunc(DDNSList, func(a, b *model.DDNSProfile) int { slices.SortFunc(DDNSList, func(a, b *model.DDNSProfile) int {
return utils.Compare(a.ID, b.ID) return cmp.Compare(a.ID, b.ID)
}) })
} }

View File

@ -1,11 +1,11 @@
package singleton package singleton
import ( import (
"cmp"
"slices" "slices"
"sync" "sync"
"github.com/nezhahq/nezha/model" "github.com/nezhahq/nezha/model"
"github.com/nezhahq/nezha/pkg/utils"
) )
var ( var (
@ -64,7 +64,7 @@ func UpdateNATList() {
NATList = append(NATList, n) NATList = append(NATList, n)
} }
slices.SortFunc(NATList, func(a, b *model.NAT) int { slices.SortFunc(NATList, func(a, b *model.NAT) int {
return utils.Compare(a.ID, b.ID) return cmp.Compare(a.ID, b.ID)
}) })
} }

View File

@ -1,6 +1,7 @@
package singleton package singleton
import ( import (
"cmp"
"fmt" "fmt"
"log" "log"
"slices" "slices"
@ -8,7 +9,6 @@ import (
"time" "time"
"github.com/nezhahq/nezha/model" "github.com/nezhahq/nezha/model"
"github.com/nezhahq/nezha/pkg/utils"
) )
const ( const (
@ -90,7 +90,7 @@ func UpdateNotificationList() {
NotificationListSorted = append(NotificationListSorted, n) NotificationListSorted = append(NotificationListSorted, n)
} }
slices.SortFunc(NotificationListSorted, func(a, b *model.Notification) int { slices.SortFunc(NotificationListSorted, func(a, b *model.Notification) int {
return utils.Compare(a.ID, b.ID) return cmp.Compare(a.ID, b.ID)
}) })
} }

View File

@ -1,6 +1,7 @@
package singleton package singleton
import ( import (
"cmp"
"fmt" "fmt"
"log" "log"
"slices" "slices"
@ -10,7 +11,6 @@ import (
"github.com/jinzhu/copier" "github.com/jinzhu/copier"
"github.com/nezhahq/nezha/model" "github.com/nezhahq/nezha/model"
"github.com/nezhahq/nezha/pkg/utils"
pb "github.com/nezhahq/nezha/proto" pb "github.com/nezhahq/nezha/proto"
) )
@ -180,7 +180,7 @@ func (ss *ServiceSentinel) UpdateServiceList() {
} }
slices.SortFunc(ss.ServiceList, func(a, b *model.Service) int { slices.SortFunc(ss.ServiceList, func(a, b *model.Service) int {
return utils.Compare(a.ID, b.ID) return cmp.Compare(a.ID, b.ID)
}) })
} }