diff options
author | Chris Wendt <chrismwendt@gmail.com> | 2022-06-08 02:28:37 -0600 |
---|---|---|
committer | Chris Wendt <chrismwendt@gmail.com> | 2022-06-08 03:02:44 -0600 |
commit | 30943ded71e123886291ad393e55bfb6aa837df3 (patch) | |
tree | ca7cc2520959386d6c57d9204f284be217bb0b72 /var-value.go | |
parent | use generic atomic (diff) | |
download | stm-30943ded71e123886291ad393e55bfb6aa837df3.tar.gz stm-30943ded71e123886291ad393e55bfb6aa837df3.tar.xz |
BIG change: generic Var[T], txVar, etc.
Diffstat (limited to 'var-value.go')
-rw-r--r-- | var-value.go | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/var-value.go b/var-value.go index ff97104..966399a 100644 --- a/var-value.go +++ b/var-value.go @@ -28,24 +28,24 @@ func (me versionedValue) Changed(other VarValue) bool { return me.version != other.(versionedValue).version } -type customVarValue struct { - value interface{} - changed func(interface{}, interface{}) bool +type customVarValue[T any] struct { + value T + changed func(T, T) bool } -var _ VarValue = customVarValue{} +var _ VarValue = customVarValue[struct{}]{} -func (me customVarValue) Changed(other VarValue) bool { - return me.changed(me.value, other.(customVarValue).value) +func (me customVarValue[T]) Changed(other VarValue) bool { + return me.changed(me.value, other.(customVarValue[T]).value) } -func (me customVarValue) Set(newValue interface{}) VarValue { - return customVarValue{ - value: newValue, +func (me customVarValue[T]) Set(newValue interface{}) VarValue { + return customVarValue[T]{ + value: newValue.(T), changed: me.changed, } } -func (me customVarValue) Get() interface{} { +func (me customVarValue[T]) Get() interface{} { return me.value } |