github.com/m4gshm/gollections@v0.0.10/break/kv/stream/iface.go (about)

     1  package stream
     2  
     3  import "github.com/m4gshm/gollections/break/kv"
     4  
     5  // Stream is map or key/value stream of elements in transformation state.
     6  type Stream[K comparable, V any, Map map[K]V | map[K][]V] interface {
     7  	kv.Iterator[K, V]
     8  	Iter() kv.Iterator[K, V]
     9  
    10  	// Filter(predicate func(K, V) bool) Stream[K, V, I, Map]
    11  	// FilterKey(predicate func(K) bool) Stream[K, V, I, Map]
    12  	// FilterValue(predicate func(V) bool) Stream[K, V, I, Map]
    13  
    14  	// Filt(predicate func(K, V) (bool, error)) Stream[K, V, I, Map]
    15  	// FiltKey(predicate func(K) (bool, error)) Stream[K, V, I, Map]
    16  	// FiltValue(predicate func(V) (bool, error)) Stream[K, V, I, Map]
    17  
    18  	Map() (Map, error)
    19  
    20  	Reduce(merger func(K, K, V, V) (K, V, error)) (K, V, error)
    21  	HasAny(predicate func(K, V) (bool, error)) (bool, error)
    22  }