Update go version
This commit is contained in:
63
vendor/honnef.co/go/tools/internal/xtools-internal/moreiters/iters.go
vendored
Normal file
63
vendor/honnef.co/go/tools/internal/xtools-internal/moreiters/iters.go
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
// Copyright 2025 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package moreiters
|
||||
|
||||
import "iter"
|
||||
|
||||
// First returns the first value of seq and true.
|
||||
// If seq is empty, it returns the zero value of T and false.
|
||||
func First[T any](seq iter.Seq[T]) (z T, ok bool) {
|
||||
for t := range seq {
|
||||
return t, true
|
||||
}
|
||||
return z, false
|
||||
}
|
||||
|
||||
// Contains reports whether x is an element of the sequence seq.
|
||||
func Contains[T comparable](seq iter.Seq[T], x T) bool {
|
||||
for cand := range seq {
|
||||
if cand == x {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// Every reports whether every pred(t) for t in seq returns true,
|
||||
// stopping at the first false element.
|
||||
func Every[T any](seq iter.Seq[T], pred func(T) bool) bool {
|
||||
for t := range seq {
|
||||
if !pred(t) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
// Any reports whether any pred(t) for t in seq returns true.
|
||||
func Any[T any](seq iter.Seq[T], pred func(T) bool) bool {
|
||||
for t := range seq {
|
||||
if pred(t) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// Len returns the number of elements in the sequence (by iterating).
|
||||
func Len[T any](seq iter.Seq[T]) (n int) {
|
||||
for range seq {
|
||||
n++
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// Empty reports whether the sequence contains no elements.
|
||||
func Empty[T any](seq iter.Seq[T]) bool {
|
||||
for range seq {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
Reference in New Issue
Block a user