p1: /v2/scrape, /v1/fetch, auth, CLI, contract tests
Single Fetcher.Fetch on the Guard that holds DenyPrefixes. skipTlsVerification is ignored. No 502. keys add writes the secret only to --out. Release binary has no -test-allow-prefix.
This commit is contained in:
+49
@@ -0,0 +1,49 @@
|
||||
package gojq
|
||||
|
||||
// Iter is an interface for an iterator.
|
||||
type Iter interface {
|
||||
Next() (any, bool)
|
||||
}
|
||||
|
||||
// NewIter creates a new [Iter] from values.
|
||||
func NewIter[T any](values ...T) Iter {
|
||||
switch len(values) {
|
||||
case 0:
|
||||
return emptyIter{}
|
||||
case 1:
|
||||
return &unitIter{value: values[0]}
|
||||
default:
|
||||
iter := sliceIter[T](values)
|
||||
return &iter
|
||||
}
|
||||
}
|
||||
|
||||
type emptyIter struct{}
|
||||
|
||||
func (emptyIter) Next() (any, bool) {
|
||||
return nil, false
|
||||
}
|
||||
|
||||
type unitIter struct {
|
||||
value any
|
||||
done bool
|
||||
}
|
||||
|
||||
func (iter *unitIter) Next() (any, bool) {
|
||||
if iter.done {
|
||||
return nil, false
|
||||
}
|
||||
iter.done = true
|
||||
return iter.value, true
|
||||
}
|
||||
|
||||
type sliceIter[T any] []T
|
||||
|
||||
func (iter *sliceIter[T]) Next() (any, bool) {
|
||||
if len(*iter) == 0 {
|
||||
return nil, false
|
||||
}
|
||||
value := (*iter)[0]
|
||||
*iter = (*iter)[1:]
|
||||
return value, true
|
||||
}
|
||||
Reference in New Issue
Block a user