From 59d879ef4e654ce53c2450e000ffa435f06c2f0e Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Wed, 22 Jan 2025 12:31:30 -0300 Subject: Unify code into default repo format --- var-value.go | 51 --------------------------------------------------- 1 file changed, 51 deletions(-) delete mode 100644 var-value.go (limited to 'var-value.go') diff --git a/var-value.go b/var-value.go deleted file mode 100644 index 3518bf6..0000000 --- a/var-value.go +++ /dev/null @@ -1,51 +0,0 @@ -package stm - -type VarValue interface { - Set(any) VarValue - Get() any - Changed(VarValue) bool -} - -type version uint64 - -type versionedValue[T any] struct { - value T - version version -} - -func (me versionedValue[T]) Set(newValue any) VarValue { - return versionedValue[T]{ - value: newValue.(T), - version: me.version + 1, - } -} - -func (me versionedValue[T]) Get() any { - return me.value -} - -func (me versionedValue[T]) Changed(other VarValue) bool { - return me.version != other.(versionedValue[T]).version -} - -type customVarValue[T any] struct { - value T - changed func(T, T) bool -} - -var _ VarValue = customVarValue[struct{}]{} - -func (me customVarValue[T]) Changed(other VarValue) bool { - return me.changed(me.value, other.(customVarValue[T]).value) -} - -func (me customVarValue[T]) Set(newValue any) VarValue { - return customVarValue[T]{ - value: newValue.(T), - changed: me.changed, - } -} - -func (me customVarValue[T]) Get() any { - return me.value -} -- cgit v1.2.3