Documentation ¶
Overview ¶
Package mutable provides implementations of mutable containers.
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](elements map[K]V) *Map[K, V]
- func WrapMap[K comparable, V any](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) (ok 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]) Delete(keys ...K)
- func (m *Map[K, V]) DeleteOne(key K)
- 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() (map_.Iter[K, V], K, V, bool)
- func (m *Map[K, V]) Get(key K) (val 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]deprecated
- func (m *Map[K, V]) Immutable() immutable.Map[K, V]
- func (m *Map[K, V]) IsEmpty() bool
- func (m *Map[K, V]) Keys() immutable.MapKeys[K, V]
- func (m *Map[K, V]) Len() int
- func (m *Map[K, V]) Loop() loop.Loop[K, V]
- func (m *Map[K, V]) Map() (out 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]) Remove(key K) (v V, ok bool)
- func (m *Map[K, V]) Set(key K, value V)
- func (m *Map[K, V]) SetMap(other 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]) *ordered.Map[K, V]
- func (m *Map[K, V]) StableSort(comparer slice.Comparer[K]) *ordered.Map[K, V]
- func (m *Map[K, V]) String() string
- 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() immutable.MapValues[K, V]
- type Set
- func (s *Set[T]) Add(elements ...T)
- func (s *Set[T]) AddAll(elements 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) (ok bool)
- func (s *Set[T]) DeleteOne(element 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]) *ordered.Set[T]
- func (s *Set[T]) StableSort(comparer slice.Comparer[T]) *ordered.Set[T]
- func (s *Set[T]) String() string
- type SetIter
- type SliceIter
- func (i *SliceIter[T]) All(consumer func(element T) bool)
- func (i *SliceIter[T]) Delete()
- func (i *SliceIter[T]) DeleteNext() bool
- func (i *SliceIter[T]) DeletePrev() bool
- func (i *SliceIter[T]) For(consumer func(element T) error) error
- func (i *SliceIter[T]) ForEach(consumer func(element T))
- func (i *SliceIter[T]) Get() (t T, ok bool)
- func (i *SliceIter[T]) GetNext() (t T)
- func (i *SliceIter[T]) GetPrev() (t T)
- func (i *SliceIter[T]) HasNext() bool
- func (i *SliceIter[T]) HasPrev() bool
- func (i *SliceIter[T]) Next() (T, bool)
- func (i *SliceIter[T]) Prev() (T, bool)
- func (i *SliceIter[T]) Size() int
- type Vector
- func (v *Vector[T]) Add(elements ...T)
- func (v *Vector[T]) AddAll(other c.ForEach[T])
- func (v *Vector[T]) AddOne(element T)
- func (v *Vector[T]) All(consumer func(int, T) bool)
- func (v *Vector[T]) Append(out []T) []T
- func (v *Vector[T]) Clone() *Vector[T]
- func (v *Vector[T]) Conv(converter func(T) (T, error)) breakLoop.Loop[T]
- func (v *Vector[T]) Convert(converter func(T) T) loop.Loop[T]
- func (v *Vector[T]) Delete(indexes ...int)
- func (v *Vector[T]) DeleteActual(indexes ...int) bool
- func (v *Vector[T]) DeleteActualOne(index int) bool
- func (v *Vector[T]) DeleteOne(index int)
- func (v *Vector[T]) Filt(predicate func(T) (bool, error)) breakLoop.Loop[T]
- func (v *Vector[T]) Filter(filter func(T) bool) loop.Loop[T]
- func (v *Vector[T]) First() (*SliceIter[T], T, bool)deprecated
- func (v *Vector[T]) For(consumer func(T) error) error
- func (v *Vector[T]) ForEach(consumer func(T))
- func (v *Vector[T]) Get(index int) (t T, ok bool)
- func (v *Vector[T]) HasAny(predicate func(T) bool) (ok bool)
- func (v *Vector[T]) Head() *SliceIter[T]deprecated
- func (v *Vector[T]) IsEmpty() bool
- func (v *Vector[T]) Last() (*SliceIter[T], T, bool)
- func (v *Vector[T]) Len() int
- func (v *Vector[T]) Loop() loop.Loop[T]
- func (v *Vector[T]) Reduce(merge func(T, T) T) (out T)
- func (v *Vector[T]) Remove(index int) (t T, ok bool)
- func (v *Vector[T]) Set(index int, value T)
- func (v *Vector[T]) SetNew(index int, value T) bool
- func (v *Vector[T]) Slice() (out []T)
- func (v *Vector[T]) Sort(comparer slice.Comparer[T]) *Vector[T]
- func (v *Vector[T]) StableSort(comparer slice.Comparer[T]) *Vector[T]
- func (v *Vector[T]) String() string
- func (v *Vector[T]) Tail() *SliceIter[T]deprecated
- func (v *Vector[T]) Track(consumer func(int, T) error) error
- func (v *Vector[T]) TrackEach(consumer 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] map[K]V
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 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](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]) 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 breabkable stream that applies the 'converter' function to keys of the map
func (Map[K, V]) ConvValue ¶
ConvValue returns a breakable 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]) Delete ¶
func (m *Map[K, V]) Delete(keys ...K)
Delete removes value by their keys from the map
func (*Map[K, V]) DeleteOne ¶
func (m *Map[K, V]) DeleteOne(key K)
DeleteOne removes a value by the key from 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 breakable loop consisting of key/value pairs where the key satisfies the condition of the 'predicate' function
func (*Map[K, V]) FiltValue ¶
FiltValue returns a breakable 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 ¶
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. Deprecated: First is deprecated. Will be replaced by rance-over function iterator. 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() (out 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 ¶ added in v0.0.11
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. The 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 map[T]struct{}) *Set[T]
WrapSet creates a set using a map 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(element 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 transforms to the ordered Set contains sorted elements
type SetIter ¶
type SetIter[K comparable] struct { map_.KeyIter[K, struct{}] // contains filtered or unexported fields }
SetIter is the Set Iterator implementation.
func NewSetIter ¶
func NewSetIter[K comparable](uniques map[K]struct{}, del func(element K)) SetIter[K]
NewSetIter creates SetIter instance.
type SliceIter ¶
type SliceIter[T any] struct { // contains filtered or unexported fields }
SliceIter is the Iterator implementation for mutable containers.
func (*SliceIter[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 (*SliceIter[T]) DeleteNext ¶
DeleteNext deletes the next element if it exists
func (*SliceIter[T]) DeletePrev ¶
DeletePrev deletes the previos element if it exists
func (*SliceIter[T]) For ¶
For takes elements retrieved by the iterator. Can be interrupt by returning Break
func (*SliceIter[T]) ForEach ¶
func (i *SliceIter[T]) ForEach(consumer func(element T))
ForEach FlatIter all elements retrieved by the iterator
func (*SliceIter[T]) Get ¶
Get returns the current element. The ok result indicates whether the element was returned by the iterator. If ok == false, then the iteration must be completed.
func (*SliceIter[T]) GetNext ¶
func (i *SliceIter[T]) GetNext() (t T)
GetNext returns the next element
func (*SliceIter[T]) GetPrev ¶
func (i *SliceIter[T]) GetPrev() (t T)
GetPrev returns the previous element
func (*SliceIter[T]) Next ¶
Next returns the next element. The ok result indicates whether the element was returned by the iterator. If ok == false, then the iteration must be completed.
type Vector ¶
type Vector[T any] []T
Vector is a collection implementation that provides elements order and index access
func NewVectorCap ¶
NewVectorCap instantiates Vector with a predefined capacity
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]) Add ¶
func (v *Vector[T]) Add(elements ...T)
Add adds elements to the end of the vector
func (*Vector[T]) AddOne ¶
func (v *Vector[T]) AddOne(element T)
AddOne adds an element to the end of the vector
func (*Vector[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 (*Vector[T]) Append ¶
func (v *Vector[T]) Append(out []T) []T
Append collects the values to the specified 'out' slice
func (*Vector[T]) Conv ¶
Conv returns a breakable loop that applies the 'converter' function to the collection elements
func (*Vector[T]) Convert ¶
Convert returns a loop that applies the 'converter' function to the collection elements
func (*Vector[T]) DeleteActual ¶
DeleteActual drops elements by indexes with verification of no-op
func (*Vector[T]) DeleteActualOne ¶
DeleteActualOne removes an element by the index
func (*Vector[T]) Filt ¶
Filt returns a breakable loop consisting of elements that satisfy the condition of the 'predicate' function
func (*Vector[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 (*Vector[T]) For ¶
For applies the 'consumer' function for the elements until the consumer returns the c.Break to stop.
func (*Vector[T]) ForEach ¶
func (v *Vector[T]) ForEach(consumer func(T))
ForEach applies consumer to elements without error checking
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) (out T)
Reduce reduces the elements into an one using the 'merge' function
func (*Vector[T]) Slice ¶
func (v *Vector[T]) Slice() (out []T)
Slice collects the elements to a slice
func (*Vector[T]) StableSort ¶
StableSort stable sorts the Vector in-place and returns it
Directories ¶
Path | Synopsis |
---|---|
Package map_ provides unordered mutable.Map constructors
|
Package map_ provides unordered mutable.Map constructors |
Package ordered provides mutable ordered collection implementations
|
Package ordered provides mutable ordered collection implementations |
map_
Package map_ provides mutable ordered.Map constructors
|
Package map_ provides mutable ordered.Map constructors |
set
Package set provides mutable ordered.Set constructors and helpers
|
Package set provides mutable ordered.Set constructors and helpers |
Package set provides unordered mutable.Set constructors and helpers
|
Package set provides unordered mutable.Set constructors and helpers |
Package sync provides parametrized Map implementation
|
Package sync provides parametrized Map implementation |
Package vector provides mutable.Vector constructors and helpers
|
Package vector provides mutable.Vector constructors and helpers |