Versions in this module Expand all Collapse all v0 v0.0.2 Apr 25, 2026 v0.0.1 Apr 11, 2026 Changes in this version + func CloneMapIfNil[K comparable, V any, T any](dirty *T, original *T, getMap func(*T) map[K]V) map[K]V + type Box struct + func NewBox[T Cloneable[T]](original T) *Box[T] + func (b *Box[T]) Change(apply func(T)) + func (b *Box[T]) ChangeIf(cond func(T) bool, apply func(T)) bool + func (b *Box[T]) Delete() + func (b *Box[T]) Dirty() bool + func (b *Box[T]) Finalize() (T, bool) + func (b *Box[T]) Locked(fn func(Value[T])) + func (b *Box[T]) Original() T + func (b *Box[T]) Set(value T) + func (b *Box[T]) Value() T + type Cloneable interface + Clone func() T + type CloneableMap map[K]V + func (m CloneableMap[K, V]) Clone() CloneableMap[K, V] + type FinalizationHooks struct + OnAdd func(key K, value V) + OnChange func(key K, oldValue V, newValue V) + OnDelete func(key K, value V) + type Map struct + func NewMap[K comparable, V Cloneable[V]](base map[K]V) *Map[K, V] + func (m *Map[K, V]) Add(key K, value V) + func (m *Map[K, V]) Change(key K, apply func(V)) + func (m *Map[K, V]) Clear() + func (m *Map[K, V]) Delete(key K) + func (m *Map[K, V]) Finalize() (result map[K]V, changed bool) + func (m *Map[K, V]) Get(key K) (*MapEntry[K, V], bool) + func (m *Map[K, V]) Range(fn func(*MapEntry[K, V]) bool) + func (m *Map[K, V]) TryDelete(key K) bool + type MapBuilder struct + func NewMapBuilder[K comparable, VBase any, VBuilder any](base map[K]VBase, toBuilder func(VBase) VBuilder, build func(VBuilder) VBase) *MapBuilder[K, VBase, VBuilder] + func (mb *MapBuilder[K, VBase, VBuilder]) Build() map[K]VBase + func (mb *MapBuilder[K, VBase, VBuilder]) Clear() + func (mb *MapBuilder[K, VBase, VBuilder]) Delete(key K) + func (mb *MapBuilder[K, VBase, VBuilder]) Has(key K) bool + func (mb *MapBuilder[K, VBase, VBuilder]) Set(key K, value VBuilder) + type MapEntry struct + func (e *MapEntry) Dirty() bool + func (e *MapEntry) Key() K + func (e *MapEntry) Original() V + func (e *MapEntry) Value() V + func (e *MapEntry[K, V]) Change(apply func(V)) + func (e *MapEntry[K, V]) ChangeIf(cond func(V) bool, apply func(V)) bool + func (e *MapEntry[K, V]) Delete() + func (e *MapEntry[K, V]) Locked(fn func(Value[V])) + func (e *MapEntry[K, V]) Replace(newValue V) + type SyncMap struct + func NewSyncMap[K comparable, V Cloneable[V]](base map[K]V) *SyncMap[K, V] + func (m *SyncMap[K, V]) Delete(key K) + func (m *SyncMap[K, V]) Finalize() (map[K]V, bool) + func (m *SyncMap[K, V]) FinalizeWith(hooks FinalizationHooks[K, V]) (map[K]V, bool) + func (m *SyncMap[K, V]) Load(key K) (*SyncMapEntry[K, V], bool) + func (m *SyncMap[K, V]) LoadOrStore(key K, value V) (*SyncMapEntry[K, V], bool) + func (m *SyncMap[K, V]) Range(fn func(*SyncMapEntry[K, V]) bool) + type SyncMapEntry struct + func (e *SyncMapEntry) Key() K + func (e *SyncMapEntry) Original() V + func (e *SyncMapEntry[K, V]) Change(apply func(V)) + func (e *SyncMapEntry[K, V]) ChangeIf(cond func(V) bool, apply func(V)) bool + func (e *SyncMapEntry[K, V]) Delete() + func (e *SyncMapEntry[K, V]) DeleteIf(cond func(V) bool) + func (e *SyncMapEntry[K, V]) Dirty() bool + func (e *SyncMapEntry[K, V]) Locked(fn func(Value[V])) + func (e *SyncMapEntry[K, V]) Value() V + type Value interface + Change func(apply func(T)) + ChangeIf func(cond func(T) bool, apply func(T)) bool + Delete func() + Dirty func() bool + Locked func(fn func(Value[T])) + Original func() T + Value func() T