Documentation ¶
Overview ¶
Package ordered provides mutable ordered collection implementations
Index ¶
- type Map
- func MapFromLoop[K comparable, V any](next func() (K, V, bool)) *Map[K, V]
- func NewMap[K comparable, V any](elements ...c.KV[K, V]) *Map[K, V]
- func NewMapCap[K comparable, V any](capacity int) *Map[K, V]
- func NewMapOf[K comparable, V any](order []K, elements map[K]V) *Map[K, V]
- func WrapMap[K comparable, V any](order []K, elements map[K]V) *Map[K, V]
- func (m *Map[K, V]) All(consumer func(K, V) bool)
- func (m *Map[K, V]) Contains(key K) bool
- func (m *Map[K, V]) Conv(converter func(K, V) (K, V, error)) breakLoop.Loop[K, V]
- func (m *Map[K, V]) ConvKey(converter func(K) (K, error)) breakLoop.Loop[K, V]
- func (m Map[K, V]) ConvValue(converter func(V) (V, error)) breakLoop.Loop[K, V]
- func (m *Map[K, V]) Convert(converter func(K, V) (K, V)) loop.Loop[K, V]
- func (m *Map[K, V]) ConvertKey(converter func(K) K) loop.Loop[K, V]
- func (m *Map[K, V]) ConvertValue(converter func(V) V) loop.Loop[K, V]
- func (m *Map[K, V]) Filt(predicate func(K, V) (bool, error)) breakLoop.Loop[K, V]
- func (m Map[K, V]) FiltKey(predicate func(K) (bool, error)) breakLoop.Loop[K, V]
- func (m *Map[K, V]) FiltValue(predicate func(V) (bool, error)) breakLoop.Loop[K, V]
- func (m *Map[K, V]) Filter(predicate func(K, V) bool) loop.Loop[K, V]
- func (m *Map[K, V]) FilterKey(predicate func(K) bool) loop.Loop[K, V]
- func (m *Map[K, V]) FilterValue(predicate func(V) bool) loop.Loop[K, V]
- func (m *Map[K, V]) First() (ordered.MapIter[K, V], K, V, bool)deprecated
- func (m *Map[K, V]) Get(key K) (V, bool)
- func (m *Map[K, V]) HasAny(predicate func(K, V) bool) bool
- func (m *Map[K, V]) Head() ordered.MapIter[K, V]deprecated
- func (m *Map[K, V]) Immutable() ordered.Map[K, V]
- func (m *Map[K, V]) IsEmpty() bool
- func (m *Map[K, V]) Keys() ordered.MapKeys[K]
- func (m *Map[K, V]) Len() int
- func (m *Map[K, V]) Loop() loop.Loop[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 K, v V)
- func (m *Map[K, V]) Set(key K, value V)
- func (m *Map[K, V]) SetMap(kvs c.TrackEach[K, V])
- func (m *Map[K, V]) SetNew(key K, value V) bool
- func (m *Map[K, V]) Sort(comparer slice.Comparer[K]) *Map[K, V]
- func (m *Map[K, V]) StableSort(comparer slice.Comparer[K]) *Map[K, V]
- func (m *Map[K, V]) String() string
- func (m *Map[K, V]) Tail() ordered.MapIter[K, V]deprecated
- func (m *Map[K, V]) Track(consumer func(K, V) error) error
- func (m *Map[K, V]) TrackEach(consumer func(K, V))
- func (m *Map[K, V]) Values() ordered.MapValues[K, V]
- type Set
- func (s *Set[T]) Add(elements ...T)
- func (s *Set[T]) AddAll(other c.ForEach[T])
- func (s *Set[T]) AddAllNew(other c.ForEach[T]) (ok bool)
- func (s *Set[T]) AddNew(elements ...T) bool
- func (s *Set[T]) AddOne(element T)
- func (s *Set[T]) AddOneNew(element T) (ok bool)
- func (s *Set[T]) All(consumer func(T) bool)
- func (s *Set[T]) Append(out []T) []T
- func (s *Set[T]) Clone() *Set[T]
- func (s *Set[T]) Contains(element T) (ok bool)
- func (s *Set[T]) Conv(converter func(T) (T, error)) breakLoop.Loop[T]
- func (s *Set[T]) Convert(converter func(T) T) loop.Loop[T]
- func (s *Set[T]) Delete(elements ...T)
- func (s *Set[T]) DeleteActual(elements ...T) bool
- func (s *Set[T]) DeleteActualOne(element T) bool
- func (s *Set[T]) DeleteOne(v T)
- func (s *Set[T]) Filt(predicate func(T) (bool, error)) breakLoop.Loop[T]
- func (s *Set[T]) Filter(predicate func(T) bool) loop.Loop[T]
- func (s *Set[T]) First() (SetIter[T], T, bool)deprecated
- func (s *Set[T]) For(consumer func(T) error) error
- func (s *Set[T]) ForEach(consumer func(T))
- func (s *Set[K]) HasAny(predicate func(K) bool) bool
- func (s *Set[T]) Head() SetIter[T]deprecated
- func (s *Set[T]) IsEmpty() bool
- func (s *Set[T]) IterEdit() c.DelIterator[T]
- func (s *Set[T]) Len() int
- func (s *Set[T]) Loop() loop.Loop[T]
- func (s *Set[T]) Reduce(merge func(T, T) T) (t T)
- func (s *Set[T]) Slice() (out []T)
- func (s *Set[T]) Sort(comparer slice.Comparer[T]) *Set[T]
- func (s *Set[T]) StableSort(comparer slice.Comparer[T]) *Set[T]
- func (s *Set[T]) String() string
- type SetIter
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 a map using key/value pairs
func NewMapCap ¶
func NewMapCap[K comparable, V any](capacity int) *Map[K, V]
NewMapCap instantiates Map with a predefined capacity
func NewMapOf ¶
func NewMapOf[K comparable, V any](order []K, 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](order []K, elements map[K]V) *Map[K, V]
WrapMap instantiates an ordered Map using a map and an order slice as internal storage
func (*Map[K, V]) All ¶ added in v0.0.12
All is used to iterate through the collection using `for ... range`. Supported since go 1.22 with GOEXPERIMENT=rangefunc enabled.
func (*Map[K, V]) Conv ¶
Conv returns a breakable loop that applies the 'converter' function to the collection elements
func (*Map[K, V]) ConvKey ¶
ConvKey returns a loop that applies the 'converter' function to keys of the map
func (Map[K, V]) ConvValue ¶
ConvValue returns a loop that applies the 'converter' function to values of the map
func (*Map[K, V]) Convert ¶
Convert returns a loop that applies the 'converter' function to the collection elements
func (*Map[K, V]) ConvertKey ¶
ConvertKey returns a loop that applies the 'converter' function to keys of the map
func (*Map[K, V]) ConvertValue ¶
ConvertValue returns a loop that applies the 'converter' function to values of the map
func (*Map[K, V]) Filt ¶
Filt returns a breakable loop consisting of elements that satisfy the condition of the 'predicate' function
func (Map[K, V]) FiltKey ¶
FiltKey returns a loop consisting of key/value pairs where the key satisfies the condition of the 'predicate' function
func (*Map[K, V]) FiltValue ¶
FiltValue returns a loop consisting of key/value pairs where the value satisfies the condition of the 'predicate' function
func (*Map[K, V]) Filter ¶
Filter returns a loop consisting of elements that satisfy the condition of the 'predicate' function
func (*Map[K, V]) FilterKey ¶
FilterKey returns a loop consisting of key/value pairs where the key satisfies the condition of the 'predicate' function
func (*Map[K, V]) FilterValue ¶
FilterValue returns a loop consisting of key/value pairs where the value satisfies the condition of the 'predicate' function
func (*Map[K, V]) First
deprecated
Deprecated: First is deprecated. Will be replaced by rance-over function iterator. 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]) 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]) Map ¶
func (m *Map[K, V]) Map() map[K]V
Map collects the key/value pairs into a new map
func (*Map[K, V]) Reduce ¶
func (m *Map[K, V]) Reduce(merge func(K, K, V, V) (K, V)) (k K, v 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 keys in-place (no copy)
func (*Map[K, V]) Track ¶
Track applies the 'consumer' function for all key/value pairs until the consumer returns the c.Break to stop.
type Set ¶
type Set[T comparable] struct { // contains filtered or unexported fields }
Set is a collection implementation that provides element uniqueness and access order. Elements must be comparable.
func NewSet ¶
func NewSet[T comparable](elements ...T) *Set[T]
NewSet instantiates set and copies elements to it
func NewSetCap ¶
func NewSetCap[T comparable](capacity int) *Set[T]
NewSetCap creates a set with a predefined capacity
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 []T, uniques map[T]int) *Set[T]
WrapSet creates a set using a map and an order slice as the internal storage.
func (*Set[T]) AddAllNew ¶
AddAllNew inserts elements from the "other" collection if they are not contained in the collection
func (*Set[T]) All ¶ added in v0.0.12
All is used to iterate through the collection using `for ... range`. Supported since go 1.22 with GOEXPERIMENT=rangefunc enabled.
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 ¶
Conv returns a breakable loop that applies the 'converter' function to the collection elements
func (*Set[T]) Convert ¶
Convert returns a loop that applies the 'converter' function to the collection elements
func (*Set[T]) Delete ¶
func (s *Set[T]) Delete(elements ...T)
Delete removes elements from the collection
func (*Set[T]) DeleteActual ¶
DeleteActual removes elements only if they are contained in the collection
func (*Set[T]) DeleteActualOne ¶
DeleteActualOne removes an element only if it is contained in the collection
func (*Set[T]) DeleteOne ¶
func (s *Set[T]) DeleteOne(v T)
DeleteOne removes an element from the collection
func (*Set[T]) Filt ¶
Filt returns a breakable loop consisting of elements that satisfy the condition of the 'predicate' function
func (*Set[T]) Filter ¶
Filter returns a loop consisting of elements that satisfy the condition of the 'predicate' function
func (*Set[T]) First
deprecated
Deprecated: First is deprecated. Will be replaced by rance-over function iterator. 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 'consumer' function for the elements until the consumer returns the c.Break to stop.
func (*Set[T]) ForEach ¶
func (s *Set[T]) ForEach(consumer func(T))
ForEach applies the 'consumer' function for every element
func (*Set[K]) HasAny ¶
HasAny finds the first element that satisfies the 'predicate' function condition and returns true if successful
func (*Set[T]) IterEdit ¶
func (s *Set[T]) IterEdit() c.DelIterator[T]
IterEdit creates iterator that can delete iterable elements
func (*Set[T]) Reduce ¶
func (s *Set[T]) Reduce(merge func(T, T) T) (t T)
Reduce reduces the elements into an one using the 'merge' function
func (*Set[T]) StableSort ¶
StableSort sorts the elements
type SetIter ¶
type SetIter[T any] struct { // contains filtered or unexported fields }
SetIter set iterator
func NewSetIter ¶
NewSetIter creates a set's iterator.
func (*SetIter[T]) All ¶ added in v0.0.12
All is used to iterate through the collection using `for ... range`. Supported since go 1.22 with GOEXPERIMENT=rangefunc enabled.
func (*SetIter[T]) For ¶
For takes elements retrieved by the iterator. Can be interrupt by returning Break
func (*SetIter[T]) ForEach ¶
func (i *SetIter[T]) ForEach(consumer func(element T))
ForEach takes all elements retrieved by the iterator.