Imports #
"internal/race"
"runtime"
"unsafe"
"internal/race"
"runtime"
"unsafe"
goexitPanicValue is a sentinel value indicating that an iterator exited via runtime.Goexit.
var goexitPanicValue any = *ast.CallExpr
Seq is an iterator over sequences of individual values. When called as seq(yield), seq calls yield(v) for each value v in the sequence, stopping early if yield returns false. See the [iter] package documentation for more details.
type Seq func(yield func(V) bool)
Seq2 is an iterator over sequences of pairs of values, most commonly key-value pairs. When called as seq(yield), seq calls yield(k, v) for each pair (k, v) in the sequence, stopping early if yield returns false. See the [iter] package documentation for more details.
type Seq2 func(yield func(K, V) bool)
type coro struct {
}
Pull converts the “push-style” iterator sequence seq into a “pull-style” iterator accessed by the two functions next and stop. Next returns the next value in the sequence and a boolean indicating whether the value is valid. When the sequence is over, next returns the zero V and false. It is valid to call next after reaching the end of the sequence or after calling stop. These calls will continue to return the zero V and false. Stop ends the iteration. It must be called when the caller is no longer interested in next values and next has not yet signaled that the sequence is over (with a false boolean return). It is valid to call stop multiple times and when next has already returned false. Typically, callers should “defer stop()”. It is an error to call next or stop from multiple goroutines simultaneously. If the iterator panics during a call to next (or stop), then next (or stop) itself panics with the same value.
func Pull(seq *ast.IndexExpr) (next func() (V, bool), stop func())
Pull2 converts the “push-style” iterator sequence seq into a “pull-style” iterator accessed by the two functions next and stop. Next returns the next pair in the sequence and a boolean indicating whether the pair is valid. When the sequence is over, next returns a pair of zero values and false. It is valid to call next after reaching the end of the sequence or after calling stop. These calls will continue to return a pair of zero values and false. Stop ends the iteration. It must be called when the caller is no longer interested in next values and next has not yet signaled that the sequence is over (with a false boolean return). It is valid to call stop multiple times and when next has already returned false. Typically, callers should “defer stop()”. It is an error to call next or stop from multiple goroutines simultaneously. If the iterator panics during a call to next (or stop), then next (or stop) itself panics with the same value.
func Pull2(seq *ast.IndexListExpr) (next func() (K, V, bool), stop func())
go:linkname coroswitch runtime.coroswitch
func coroswitch(*coro)
go:linkname newcoro runtime.newcoro
func newcoro(func(*coro)) *coro
Generated with Arrow