summaryrefslogtreecommitdiff
path: root/ds/integer.go
diff options
context:
space:
mode:
Diffstat (limited to 'ds/integer.go')
-rw-r--r--ds/integer.go23
1 files changed, 23 insertions, 0 deletions
diff --git a/ds/integer.go b/ds/integer.go
index 4abb349..296e5bb 100644
--- a/ds/integer.go
+++ b/ds/integer.go
@@ -62,3 +62,26 @@ func (i Integer) Higher(j Elem) bool {
func (i Integer) HigherEqual(j Elem) bool {
return i.Val >= j.Int()
}
+
+func (i Integer) Compare(j Elem) int {
+ jVal := j.Int()
+ switch {
+ case i.Val < jVal:
+ return -1
+ case i.Val > jVal:
+ return 1
+ }
+ return 0
+}
+
+func (i Integer) CompareCB(j Elem, lowerCB, higherCB, equalsCB func()) {
+ jVal := j.Int()
+ switch {
+ case i.Val < jVal:
+ lowerCB()
+ case i.Val > jVal:
+ higherCB()
+ default:
+ equalsCB()
+ }
+}