aboutsummaryrefslogtreecommitdiff
path: root/var-value.go
diff options
context:
space:
mode:
authorChris Wendt <chrismwendt@gmail.com>2022-06-08 02:28:37 -0600
committerChris Wendt <chrismwendt@gmail.com>2022-06-08 03:02:44 -0600
commit30943ded71e123886291ad393e55bfb6aa837df3 (patch)
treeca7cc2520959386d6c57d9204f284be217bb0b72 /var-value.go
parentuse generic atomic (diff)
downloadstm-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.go20
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
}