Documentation ¶
Overview ¶
Package immutable provides immutable collection implementations
Index ¶
- type Map
- func (m Map[K, V]) Contains(key K) (ok bool)
- func (m Map[K, V]) Conv(converter func(K, V) (K, V, error)) breakKvStream.Iter[K, V, map[K]V]
- func (m Map[K, V]) ConvKey(converter func(K) (K, error)) breakKvStream.Iter[K, V, map[K]V]
- func (m Map[K, V]) ConvValue(converter func(V) (V, error)) breakKvStream.Iter[K, V, map[K]V]
- func (m Map[K, V]) Convert(converter func(K, V) (K, V)) stream.Iter[K, V, map[K]V]
- func (m Map[K, V]) ConvertKey(by func(K) K) stream.Iter[K, V, map[K]V]
- func (m Map[K, V]) ConvertValue(by func(V) V) stream.Iter[K, V, map[K]V]
- func (m Map[K, V]) Filt(predicate func(K, V) (bool, error)) breakKvStream.Iter[K, V, map[K]V]
- func (m Map[K, V]) FiltKey(predicate func(K) (bool, error)) breakKvStream.Iter[K, V, map[K]V]
- func (m Map[K, V]) FiltValue(predicate func(V) (bool, error)) breakKvStream.Iter[K, V, map[K]V]
- func (m Map[K, V]) Filter(predicate func(K, V) bool) stream.Iter[K, V, map[K]V]
- func (m Map[K, V]) FilterKey(predicate func(K) bool) stream.Iter[K, V, map[K]V]
- func (m Map[K, V]) FilterValue(predicate func(V) bool) stream.Iter[K, V, map[K]V]
- func (m Map[K, V]) First() (map_.Iter[K, V], K, V, bool)
- func (m Map[K, V]) For(walker func(c.KV[K, V]) error) error
- func (m Map[K, V]) ForEach(walker func(c.KV[K, V]))
- func (m Map[K, V]) Get(key K) (element V, ok bool)
- func (m Map[K, V]) HasAny(predicate func(K, V) bool) bool
- func (m Map[K, V]) Head() map_.Iter[K, V]
- func (m Map[K, V]) IsEmpty() bool
- func (m Map[K, V]) Iter() kv.Iterator[K, V]
- func (m Map[K, V]) K() MapKeys[K, V]
- func (m Map[K, V]) Keys() MapKeys[K, V]
- func (m Map[K, V]) Len() int
- func (m Map[K, V]) Loop() *map_.Iter[K, V]
- func (m Map[K, V]) Map() map[K]V
- func (m Map[K, V]) Reduce(merge func(K, K, V, V) (K, V)) (K, V)
- func (m Map[K, V]) Sort(less slice.Less[K]) ordered.Map[K, V]
- func (m Map[K, V]) StableSort(less slice.Less[K]) ordered.Map[K, V]
- func (m Map[K, V]) String() string
- func (m Map[K, V]) Track(tracker func(K, V) error) error
- func (m Map[K, V]) TrackEach(tracker func(K, V))
- func (m Map[K, V]) V() MapValues[K, V]
- func (m Map[K, V]) Values() MapValues[K, V]
- type MapKeys
- func (m MapKeys[K, V]) Append(out []K) []K
- func (m MapKeys[K, V]) Conv(converter func(K) (K, error)) breakStream.Iter[K]
- func (m MapKeys[K, V]) Convert(converter func(K) K) stream.Iter[K]
- func (m MapKeys[K, V]) Filt(predicate func(K) (bool, error)) breakStream.Iter[K]
- func (m MapKeys[K, V]) Filter(filter func(K) bool) stream.Iter[K]
- func (m MapKeys[K, V]) First() (map_.KeyIter[K, V], K, bool)
- func (m MapKeys[K, V]) For(walker func(K) error) error
- func (m MapKeys[K, V]) ForEach(walker func(K))
- func (m MapKeys[K, V]) HasAny(predicate func(K) bool) bool
- func (m MapKeys[K, V]) Head() map_.KeyIter[K, V]
- func (m MapKeys[K, V]) IsEmpty() bool
- func (m MapKeys[K, V]) Iter() c.Iterator[K]
- func (m MapKeys[K, V]) Len() int
- func (m MapKeys[K, V]) Loop() *map_.KeyIter[K, V]
- func (m MapKeys[K, V]) Reduce(merge func(K, K) K) K
- func (m MapKeys[K, V]) Slice() []K
- func (m MapKeys[K, V]) String() string
- type MapValues
- func (m MapValues[K, V]) Append(out []V) []V
- func (m MapValues[K, V]) Conv(converter func(V) (V, error)) breakStream.Iter[V]
- func (m MapValues[K, V]) Convert(converter func(V) V) stream.Iter[V]
- func (m MapValues[K, V]) Filt(predicate func(V) (bool, error)) breakStream.Iter[V]
- func (m MapValues[K, V]) Filter(filter func(V) bool) stream.Iter[V]
- func (m MapValues[K, V]) First() (map_.ValIter[K, V], V, bool)
- func (m MapValues[K, V]) For(walker func(V) error) error
- func (m MapValues[K, V]) ForEach(walker func(V))
- func (m MapValues[K, V]) HasAny(predicate func(V) bool) bool
- func (m MapValues[K, V]) Head() map_.ValIter[K, V]
- func (m MapValues[K, V]) IsEmpty() bool
- func (m MapValues[K, V]) Iter() c.Iterator[V]
- func (m MapValues[K, V]) Len() int
- func (m MapValues[K, V]) Loop() *map_.ValIter[K, V]
- func (m MapValues[K, V]) Reduce(merge func(V, V) V) V
- func (m MapValues[K, V]) Slice() []V
- func (m MapValues[K, V]) Sort(less func(e1, e2 V) bool) Vector[V]
- func (m MapValues[K, V]) String() string
- type Set
- func (s Set[T]) Append(out []T) []T
- func (s Set[T]) Contains(element T) (ok bool)
- func (s Set[T]) Conv(converter func(T) (T, error)) breakStream.Iter[T]
- func (s Set[T]) Convert(converter func(T) T) stream.Iter[T]
- func (s Set[T]) Filt(predicate func(T) (bool, error)) breakStream.Iter[T]
- func (s Set[T]) Filter(predicate func(T) bool) stream.Iter[T]
- func (s Set[T]) First() (map_.KeyIter[T, struct{}], T, bool)
- func (s Set[T]) For(walker func(T) error) error
- func (s Set[T]) ForEach(walker func(T))
- func (s Set[T]) HasAny(predicate func(T) bool) bool
- func (s Set[T]) Head() map_.KeyIter[T, struct{}]
- func (s Set[T]) IsEmpty() bool
- func (s Set[T]) Iter() c.Iterator[T]
- func (s Set[T]) Len() int
- func (s Set[T]) Loop() *map_.KeyIter[T, struct{}]
- func (s Set[T]) Reduce(merge func(T, T) T) T
- func (s Set[T]) Slice() []T
- func (s Set[T]) Sort(less slice.Less[T]) ordered.Set[T]
- func (s Set[T]) StableSort(less slice.Less[T]) ordered.Set[T]
- func (s Set[T]) String() string
- type Vector
- func (v Vector[T]) Append(out []T) []T
- func (v Vector[T]) Conv(converter func(T) (T, error)) breakStream.Iter[T]
- func (v Vector[T]) Convert(converter func(T) T) stream.Iter[T]
- func (v Vector[T]) Filt(predicate func(T) (bool, error)) breakStream.Iter[T]
- func (v Vector[T]) Filter(filter func(T) bool) stream.Iter[T]
- func (v Vector[T]) First() (slice.Iter[T], T, bool)
- func (v Vector[T]) For(walker func(T) error) error
- func (v Vector[T]) ForEach(walker func(T))
- func (v Vector[T]) Get(index int) (out T, ok bool)
- func (v Vector[T]) HasAny(predicate func(T) bool) bool
- func (v Vector[T]) Head() slice.Iter[T]
- func (v Vector[T]) IsEmpty() bool
- func (v Vector[T]) Iter() c.Iterator[T]
- func (v Vector[T]) Last() (slice.Iter[T], T, bool)
- func (v Vector[T]) Len() int
- func (v Vector[T]) Loop() *slice.Iter[T]
- func (v Vector[T]) Reduce(merge func(T, T) T) T
- func (v Vector[T]) Slice() []T
- func (v Vector[T]) Sort(less slice.Less[T]) Vector[T]
- func (v Vector[T]) StableSort(less slice.Less[T]) Vector[T]
- func (v Vector[T]) String() string
- func (v Vector[T]) Tail() slice.Iter[T]
- func (v Vector[T]) Track(tracker func(int, T) error) error
- func (v Vector[T]) TrackEach(tracker func(int, T))
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Map ¶
type Map[K comparable, V any] struct { // contains filtered or unexported fields }
Map is a collection implementation that provides elements access by an unique key
func MapFromLoop ¶
func MapFromLoop[K comparable, V any](next func() (K, V, bool)) Map[K, V]
MapFromLoop creates a map with elements retrieved converter the 'next' function
func NewMap ¶
func NewMap[K comparable, V any](elements ...c.KV[K, V]) Map[K, V]
NewMap instantiates an map using key/value pairs
func NewMapOf ¶
func NewMapOf[K comparable, V any](elements map[K]V) Map[K, V]
NewMapOf instantiates Map populated by the 'elements' map key/values
func WrapMap ¶
func WrapMap[K comparable, V any](elements map[K]V) Map[K, V]
WrapMap instantiates Map using a map as internal storage.
func (Map[K, V]) Conv ¶
func (m Map[K, V]) Conv(converter func(K, V) (K, V, error)) breakKvStream.Iter[K, V, map[K]V]
Conv returns a breakable stream that applies the 'converter' function to the collection elements
func (Map[K, V]) ConvKey ¶
func (m Map[K, V]) ConvKey(converter func(K) (K, error)) breakKvStream.Iter[K, V, map[K]V]
ConvKey returns a stream that applies the 'converter' function to keys of the map
func (Map[K, V]) ConvValue ¶
func (m Map[K, V]) ConvValue(converter func(V) (V, error)) breakKvStream.Iter[K, V, map[K]V]
ConvValue returns a stream that applies the 'converter' function to values of the map
func (Map[K, V]) Convert ¶
Convert returns a stream that applies the 'converter' function to the collection elements
func (Map[K, V]) ConvertKey ¶
ConvertKey returns a stream that applies the 'converter' function to keys of the map
func (Map[K, V]) ConvertValue ¶
ConvertValue returns a stream that applies the 'converter' function to values of the map
func (Map[K, V]) Filt ¶
func (m Map[K, V]) Filt(predicate func(K, V) (bool, error)) breakKvStream.Iter[K, V, map[K]V]
Filt returns a breakable stream consisting of elements that satisfy the condition of the 'predicate' function
func (Map[K, V]) FiltKey ¶
func (m Map[K, V]) FiltKey(predicate func(K) (bool, error)) breakKvStream.Iter[K, V, map[K]V]
FiltKey returns a stream consisting of key/value pairs where the key satisfies the condition of the 'predicate' function
func (Map[K, V]) FiltValue ¶
func (m Map[K, V]) FiltValue(predicate func(V) (bool, error)) breakKvStream.Iter[K, V, map[K]V]
FiltValue returns a stream consisting of key/value pairs where the value satisfies the condition of the 'predicate' function
func (Map[K, V]) Filter ¶
Filter returns a stream consisting of elements that satisfy the condition of the 'predicate' function
func (Map[K, V]) FilterKey ¶
FilterKey returns a stream consisting of key/value pairs where the key satisfies the condition of the 'predicate' function
func (Map[K, V]) FilterValue ¶
FilterValue returns a stream consisting of key/value pairs where the value satisfies the condition of the 'predicate' function
func (Map[K, V]) First ¶
First returns the first key/value pair of the map, an iterator to iterate over the remaining pair, and true\false marker of availability next pairs. If no more then ok==false.
func (Map[K, V]) For ¶
For applies the 'walker' function for every key/value pair. Return the c.ErrBreak to stop.
func (Map[K, V]) Get ¶
Get returns the value for a key. If ok==false, then the map does not contain the key.
func (Map[K, V]) HasAny ¶
HasAny finds the first key/value pair that satisfies the 'predicate' function condition and returns true if successful
func (Map[K, V]) Reduce ¶
func (m Map[K, V]) Reduce(merge func(K, K, V, V) (K, V)) (K, V)
Reduce reduces the key/value pairs of the map into an one pair using the 'merge' function
func (Map[K, V]) StableSort ¶
StableSort sorts the keys
func (Map[K, V]) Track ¶
Track applies the 'tracker' function for key/value pairs. Return the c.ErrBreak to stop.
type MapKeys ¶
type MapKeys[K comparable, V any] struct { // contains filtered or unexported fields }
MapKeys is the container reveal keys of a map and hides values
func WrapKeys ¶
func WrapKeys[K comparable, V any](elements map[K]V) MapKeys[K, V]
WrapKeys instantiates MapKeys using the elements as internal storage
func (MapKeys[K, V]) Append ¶
func (m MapKeys[K, V]) Append(out []K) []K
Append collects the values to the specified 'out' slice
func (MapKeys[K, V]) Conv ¶
func (m MapKeys[K, V]) Conv(converter func(K) (K, error)) breakStream.Iter[K]
Conv returns a breakable stream that applies the 'converter' function to the collection elements
func (MapKeys[K, V]) Convert ¶
Convert returns a stream that applies the 'converter' function to the collection elements
func (MapKeys[K, V]) Filt ¶
func (m MapKeys[K, V]) Filt(predicate func(K) (bool, error)) breakStream.Iter[K]
Filt returns a breakable stream consisting of elements that satisfy the condition of the 'predicate' function
func (MapKeys[K, V]) Filter ¶
Filter returns a stream consisting of elements that satisfy the condition of the 'predicate' function
func (MapKeys[K, V]) First ¶
First returns the first element of the collection, an iterator to iterate over the remaining elements, and true\false marker of availability next elements. If no more elements then ok==false.
func (MapKeys[K, V]) For ¶
For applies the 'walker' function for every key. Return the c.ErrBreak to stop.
func (MapKeys[K, V]) ForEach ¶
func (m MapKeys[K, V]) ForEach(walker func(K))
ForEach applies the 'walker' function for every key
func (MapKeys[K, V]) HasAny ¶
HasAny finds the first element that satisfies the 'predicate' function condition and returns true if successful
func (MapKeys[K, V]) Reduce ¶
func (m MapKeys[K, V]) Reduce(merge func(K, K) K) K
Reduce reduces the elements into an one using the 'merge' function
type MapValues ¶
type MapValues[K comparable, V any] struct { // contains filtered or unexported fields }
MapValues is the wrapper for Map'm values.
func WrapVal ¶
func WrapVal[K comparable, V any](elements map[K]V) MapValues[K, V]
WrapVal instantiates MapValues using elements as internal storage.
func (MapValues[K, V]) Append ¶
func (m MapValues[K, V]) Append(out []V) []V
Append collects the values to the specified 'out' slice
func (MapValues[K, V]) Conv ¶
func (m MapValues[K, V]) Conv(converter func(V) (V, error)) breakStream.Iter[V]
Conv returns a breakable stream that applies the 'converter' function to the collection elements
func (MapValues[K, V]) Convert ¶
Convert returns a stream that applies the 'converter' function to the collection elements
func (MapValues[K, V]) Filt ¶
func (m MapValues[K, V]) Filt(predicate func(V) (bool, error)) breakStream.Iter[V]
Filt returns a breakable stream consisting of elements that satisfy the condition of the 'predicate' function
func (MapValues[K, V]) Filter ¶
Filter returns a stream consisting of elements that satisfy the condition of the 'predicate' function
func (MapValues[K, V]) First ¶
First returns the first element of the collection, an iterator to iterate over the remaining elements, and true\false marker of availability next elements. If no more elements then ok==false.
func (MapValues[K, V]) For ¶
For applies the 'walker' function for collection values. Return the c.ErrBreak to stop.
func (MapValues[K, V]) ForEach ¶
func (m MapValues[K, V]) ForEach(walker func(V))
ForEach applies the 'walker' function for every value of the collection
func (MapValues[K, V]) HasAny ¶
HasAny finds the first element that satisfies the 'predicate' function condition and returns true if successful
func (MapValues[K, V]) Reduce ¶
func (m MapValues[K, V]) Reduce(merge func(V, V) V) V
Reduce reduces the elements into an one using the 'merge' function
func (MapValues[K, V]) Slice ¶
func (m MapValues[K, V]) Slice() []V
Slice collects the values to a slice
type Set ¶
type Set[T comparable] struct { // contains filtered or unexported fields }
Set is a collection implementation that provides storage for unique elements, prevents duplication. The elements must be comparable.
func NewSet ¶
func NewSet[T comparable](elements ...T) Set[T]
NewSet instantiates set and copies elements to it
func SetFromLoop ¶
func SetFromLoop[T comparable](next func() (T, bool)) Set[T]
SetFromLoop creates a set with elements retrieved by the 'next' function. The next returns an element with true or zero value with false if there are no more elements.
func WrapSet ¶
func WrapSet[T comparable](elements map[T]struct{}) Set[T]
WrapSet creates a set using a map as the internal storage.
func (Set[T]) Append ¶
func (s Set[T]) Append(out []T) []T
Append collects the values to the specified 'out' slice
func (Set[T]) Conv ¶
func (s Set[T]) Conv(converter func(T) (T, error)) breakStream.Iter[T]
Conv returns a breakable stream that applies the 'converter' function to the collection elements
func (Set[T]) Convert ¶
Convert returns a stream that applies the 'converter' function to the collection elements
func (Set[T]) Filt ¶
func (s Set[T]) Filt(predicate func(T) (bool, error)) breakStream.Iter[T]
Filt returns a breakable stream consisting of elements that satisfy the condition of the 'predicate' function
func (Set[T]) Filter ¶
Filter returns a stream consisting of elements that satisfy the condition of the 'predicate' function
func (Set[T]) First ¶
First returns the first element of the collection, an iterator to iterate over the remaining elements, and true\false marker of availability next elements. If no more elements then ok==false.
func (Set[T]) For ¶
For applies the 'walker' function for the elements. Return the c.ErrBreak to stop.
func (Set[T]) ForEach ¶
func (s Set[T]) ForEach(walker func(T))
ForEach applies the 'walker' function for every element
func (Set[T]) HasAny ¶
HasAny finds the first element that satisfies the 'predicate' function condition and returns true if successful
func (Set[T]) Reduce ¶
func (s Set[T]) Reduce(merge func(T, T) T) T
Reduce reduces the elements into an one using the 'merge' function
func (Set[T]) StableSort ¶
StableSort transforms to the ordered set with sorted elements
type Vector ¶
type Vector[T any] struct { // contains filtered or unexported fields }
Vector is a collection implementation that provides elements order and index access.
func VectorFromLoop ¶
VectorFromLoop creates a vector with elements retrieved by the 'next' function. The next returns an element with true or zero value with false if there are no more elements.
func WrapVector ¶
WrapVector instantiates Vector using a slise as internal storage.
func (Vector[T]) Append ¶
func (v Vector[T]) Append(out []T) []T
Append collects the values to the specified 'out' slice
func (Vector[T]) Conv ¶
func (v Vector[T]) Conv(converter func(T) (T, error)) breakStream.Iter[T]
Conv returns a breakable stream that applies the 'converter' function to the collection elements
func (Vector[T]) Convert ¶
Convert returns a stream that applies the 'converter' function to the collection elements
func (Vector[T]) Filt ¶
func (v Vector[T]) Filt(predicate func(T) (bool, error)) breakStream.Iter[T]
Filt returns a breakable stream consisting of elements that satisfy the condition of the 'predicate' function
func (Vector[T]) Filter ¶
Filter returns a stream consisting of elements that satisfy the condition of the 'predicate' function
func (Vector[T]) First ¶
First returns the first element of the collection, an iterator to iterate over the remaining elements, and true\false marker of availability next elements. If no more elements then ok==false.
func (Vector[T]) For ¶
For applies the 'walker' function for the elements. Return the c.ErrBreak to stop.
func (Vector[T]) ForEach ¶
func (v Vector[T]) ForEach(walker func(T))
ForEach applies the 'walker' function for every element
func (Vector[T]) Get ¶
Get returns an element by the index, otherwise, if the provided index is ouf of the vector len, returns zero T and false in the second result
func (Vector[T]) HasAny ¶
HasAny finds the first element that satisfies the 'predicate' function condition and returns true if successful
func (Vector[T]) Last ¶
Last returns the latest element of the collection, an iterator to reverse iterate over the remaining elements, and true\false marker of availability previous elements. If no more elements then ok==false.
func (Vector[T]) Reduce ¶
func (v Vector[T]) Reduce(merge func(T, T) T) T
Reduce reduces the elements into an one using the 'merge' function
func (Vector[T]) StableSort ¶
StableSort returns a stable sorted clone of the Vector
Directories ¶
Path | Synopsis |
---|---|
Package map_ provides immutable.Map constructors
|
Package map_ provides immutable.Map constructors |
Package ordered provides immutable ordered collection implementations
|
Package ordered provides immutable ordered collection implementations |
map_
Package map_ provides immutale ordered.Map constructors
|
Package map_ provides immutale ordered.Map constructors |
set
Package set provides ordered.Set constructors and helpers
|
Package set provides ordered.Set constructors and helpers |
Package set provides unordered immutable.Set constructors and helpers
|
Package set provides unordered immutable.Set constructors and helpers |
Package vector provides ordered immutable.Vector constructors and helpers
|
Package vector provides ordered immutable.Vector constructors and helpers |