diff options
author | EuAndreh <eu@euandre.org> | 2025-01-22 12:31:30 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2025-01-22 12:31:30 -0300 |
commit | 59d879ef4e654ce53c2450e000ffa435f06c2f0e (patch) | |
tree | 05ae996bf799b1e51f891a5586b3b72fa9bdfe3f /var-value.go | |
parent | Setup Makefile build skeleton (diff) | |
download | stm-59d879ef4e654ce53c2450e000ffa435f06c2f0e.tar.gz stm-59d879ef4e654ce53c2450e000ffa435f06c2f0e.tar.xz |
Unify code into default repo format
Diffstat (limited to 'var-value.go')
-rw-r--r-- | var-value.go | 51 |
1 files changed, 0 insertions, 51 deletions
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 -} |