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 } } } }