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 ""
}
}
// 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
import (
"cmp"
"fmt"
"slices"
"strings"
@ -11,7 +12,6 @@ import (
"github.com/robfig/cron/v3"
"github.com/nezhahq/nezha/model"
"github.com/nezhahq/nezha/pkg/utils"
pb "github.com/nezhahq/nezha/proto"
)
@ -84,7 +84,7 @@ func UpdateCronList() {
CronList = append(CronList, c)
}
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
import (
"cmp"
"fmt"
"slices"
"sync"
@ -12,7 +13,6 @@ import (
ddns2 "github.com/nezhahq/nezha/pkg/ddns"
"github.com/nezhahq/nezha/pkg/ddns/dummy"
"github.com/nezhahq/nezha/pkg/ddns/webhook"
"github.com/nezhahq/nezha/pkg/utils"
)
var (
@ -61,7 +61,7 @@ func UpdateDDNSList() {
DDNSList = append(DDNSList, p)
}
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
import (
"cmp"
"slices"
"sync"
"github.com/nezhahq/nezha/model"
"github.com/nezhahq/nezha/pkg/utils"
)
var (
@ -64,7 +64,7 @@ func UpdateNATList() {
NATList = append(NATList, n)
}
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
import (
"cmp"
"fmt"
"log"
"slices"
@ -8,7 +9,6 @@ import (
"time"
"github.com/nezhahq/nezha/model"
"github.com/nezhahq/nezha/pkg/utils"
)
const (
@ -90,7 +90,7 @@ func UpdateNotificationList() {
NotificationListSorted = append(NotificationListSorted, n)
}
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
import (
"cmp"
"fmt"
"log"
"slices"
@ -10,7 +11,6 @@ import (
"github.com/jinzhu/copier"
"github.com/nezhahq/nezha/model"
"github.com/nezhahq/nezha/pkg/utils"
pb "github.com/nezhahq/nezha/proto"
)
@ -180,7 +180,7 @@ func (ss *ServiceSentinel) UpdateServiceList() {
}
slices.SortFunc(ss.ServiceList, func(a, b *model.Service) int {
return utils.Compare(a.ID, b.ID)
return cmp.Compare(a.ID, b.ID)
})
}