v0.0.398 added As* version to sort functions
All checks were successful
Build Docker and Deploy / Run goext test-suite (push) Successful in 3m13s
All checks were successful
Build Docker and Deploy / Run goext test-suite (push) Successful in 3m13s
This commit is contained in:
@@ -8,12 +8,28 @@ func Sort[T OrderedConstraint](arr []T) {
|
||||
})
|
||||
}
|
||||
|
||||
func AsSorted[T OrderedConstraint](arr []T) []T {
|
||||
arr = ArrCopy(arr)
|
||||
sort.Slice(arr, func(i1, i2 int) bool {
|
||||
return arr[i1] < arr[i2]
|
||||
})
|
||||
return arr
|
||||
}
|
||||
|
||||
func SortStable[T OrderedConstraint](arr []T) {
|
||||
sort.SliceStable(arr, func(i1, i2 int) bool {
|
||||
return arr[i1] < arr[i2]
|
||||
})
|
||||
}
|
||||
|
||||
func AsSortedStable[T OrderedConstraint](arr []T) []T {
|
||||
arr = ArrCopy(arr)
|
||||
sort.SliceStable(arr, func(i1, i2 int) bool {
|
||||
return arr[i1] < arr[i2]
|
||||
})
|
||||
return arr
|
||||
}
|
||||
|
||||
func IsSorted[T OrderedConstraint](arr []T) bool {
|
||||
return sort.SliceIsSorted(arr, func(i1, i2 int) bool {
|
||||
return arr[i1] < arr[i2]
|
||||
@@ -26,12 +42,28 @@ func SortSlice[T any](arr []T, less func(v1, v2 T) bool) {
|
||||
})
|
||||
}
|
||||
|
||||
func AsSortedSlice[T any](arr []T, less func(v1, v2 T) bool) []T {
|
||||
arr = ArrCopy(arr)
|
||||
sort.Slice(arr, func(i1, i2 int) bool {
|
||||
return less(arr[i1], arr[i2])
|
||||
})
|
||||
return arr
|
||||
}
|
||||
|
||||
func SortSliceStable[T any](arr []T, less func(v1, v2 T) bool) {
|
||||
sort.SliceStable(arr, func(i1, i2 int) bool {
|
||||
return less(arr[i1], arr[i2])
|
||||
})
|
||||
}
|
||||
|
||||
func AsSortedSliceStable[T any](arr []T, less func(v1, v2 T) bool) []T {
|
||||
arr = ArrCopy(arr)
|
||||
sort.SliceStable(arr, func(i1, i2 int) bool {
|
||||
return less(arr[i1], arr[i2])
|
||||
})
|
||||
return arr
|
||||
}
|
||||
|
||||
func IsSliceSorted[T any](arr []T, less func(v1, v2 T) bool) bool {
|
||||
return sort.SliceIsSorted(arr, func(i1, i2 int) bool {
|
||||
return less(arr[i1], arr[i2])
|
||||
@@ -44,12 +76,28 @@ func SortBy[TElem any, TSel OrderedConstraint](arr []TElem, selector func(v TEle
|
||||
})
|
||||
}
|
||||
|
||||
func AsSortedBy[TElem any, TSel OrderedConstraint](arr []TElem, selector func(v TElem) TSel) []TElem {
|
||||
arr = ArrCopy(arr)
|
||||
sort.Slice(arr, func(i1, i2 int) bool {
|
||||
return selector(arr[i1]) < selector(arr[i2])
|
||||
})
|
||||
return arr
|
||||
}
|
||||
|
||||
func SortByStable[TElem any, TSel OrderedConstraint](arr []TElem, selector func(v TElem) TSel) {
|
||||
sort.SliceStable(arr, func(i1, i2 int) bool {
|
||||
return selector(arr[i1]) < selector(arr[i2])
|
||||
})
|
||||
}
|
||||
|
||||
func AsSortedByStable[TElem any, TSel OrderedConstraint](arr []TElem, selector func(v TElem) TSel) []TElem {
|
||||
arr = ArrCopy(arr)
|
||||
sort.SliceStable(arr, func(i1, i2 int) bool {
|
||||
return selector(arr[i1]) < selector(arr[i2])
|
||||
})
|
||||
return arr
|
||||
}
|
||||
|
||||
func IsSortedBy[TElem any, TSel OrderedConstraint](arr []TElem, selector func(v TElem) TSel) {
|
||||
sort.SliceStable(arr, func(i1, i2 int) bool {
|
||||
return selector(arr[i1]) < selector(arr[i2])
|
||||
|
Reference in New Issue
Block a user