add opentelemetry tracing
This commit is contained in:
@ -1,5 +1,10 @@
|
||||
package xslices
|
||||
|
||||
import (
|
||||
"crypto/rand"
|
||||
"math/big"
|
||||
)
|
||||
|
||||
func ForEach[T any](items []T, f func(T)) {
|
||||
for _, item := range items {
|
||||
f(item)
|
||||
@ -13,3 +18,12 @@ func AsMap[T any, U comparable](items []T, f func(T) U) map[U]struct{} {
|
||||
})
|
||||
return out
|
||||
}
|
||||
|
||||
func Shuffle[T any](items []T) {
|
||||
maxnum := big.NewInt(int64(len(items)))
|
||||
for i := range items {
|
||||
swapWith, _ := rand.Int(rand.Reader, maxnum)
|
||||
swapWithIdx := int(swapWith.Int64())
|
||||
items[i], items[swapWithIdx] = items[swapWithIdx], items[i]
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user