aboutsummaryrefslogtreecommitdiff
path: root/internal/engine
diff options
context:
space:
mode:
Diffstat (limited to 'internal/engine')
-rw-r--r--internal/engine/tick.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/internal/engine/tick.go b/internal/engine/tick.go
index 7a422af..ff1bace 100644
--- a/internal/engine/tick.go
+++ b/internal/engine/tick.go
@@ -116,3 +116,24 @@ func ToTicks(base float64) int {
}
return floor
}
+
+func ValuesEqual(a, b any) bool {
+ ai, aok := NumericValue(a)
+ bi, bok := NumericValue(b)
+ if aok && bok {
+ return ai == bi
+ }
+ return a == b
+}
+
+func NumericValue(v any) (float64, bool) {
+ switch x := v.(type) {
+ case int:
+ return float64(x), true
+ case int64:
+ return float64(x), true
+ case float64:
+ return x, true
+ }
+ return 0, false
+}