Files
stl/tree_iter.go
2025-08-08 14:19:31 +08:00

34 lines
615 B
Go

package stl
import "iter"
func (t *Tree[K, V, C]) Keys() iter.Seq[K] {
return func(yield func(K) bool) {
for cur := t.FirstNode(); cur != nil; cur = cur.Next() {
if !yield(cur.key) {
return
}
}
}
}
func (t *Tree[K, V, C]) Values() iter.Seq[V] {
return func(yield func(V) bool) {
for cur := t.FirstNode(); cur != nil; cur = cur.Next() {
if !yield(cur.Value) {
return
}
}
}
}
func (t *Tree[K, V, C]) All() iter.Seq2[K, V] {
return func(yield func(K, V) bool) {
for cur := t.FirstNode(); cur != nil; cur = cur.Next() {
if !yield(cur.key, cur.Value) {
return
}
}
}
}