aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorobscuren <obscuren@obscura.com>2014-01-01 10:07:29 +0800
committerobscuren <obscuren@obscura.com>2014-01-01 10:07:29 +0800
commit35e4d746418386508247319beeeb50619204af03 (patch)
tree587d67e3be80957086d40e538d0728351617f1ef
parent79eaa6f2bae8c8354807a9b32b889295b0de4b6a (diff)
downloadgo-tangerine-35e4d746418386508247319beeeb50619204af03.tar.gz
go-tangerine-35e4d746418386508247319beeeb50619204af03.tar.zst
go-tangerine-35e4d746418386508247319beeeb50619204af03.zip
Added helper methods for slice comparison and nibble matching
-rw-r--r--util.go27
1 files changed, 27 insertions, 0 deletions
diff --git a/util.go b/util.go
index fc06673d2..512a6f3d7 100644
--- a/util.go
+++ b/util.go
@@ -4,6 +4,8 @@ import (
"strconv"
"crypto/sha256"
"encoding/hex"
+ _"fmt"
+ _"math"
)
func Uitoa(i uint32) string {
@@ -21,3 +23,28 @@ func Sha256Bin(data []byte) []byte {
return hash[:]
}
+
+// Helper function for comparing slices
+func CompareIntSlice(a, b []int) bool {
+ if len(a) != len(b) {
+ return false
+ }
+ for i, v := range a {
+ if v != b[i] {
+ return false
+ }
+ }
+ return true
+}
+
+// Returns the amount of nibbles that match each other from 0 ...
+func MatchingNibbleLength(a, b []int) int {
+ i := 0
+ for CompareIntSlice(a[:i+1], b[:i+1]) && i < len(b) {
+ i+=1
+ }
+
+ //fmt.Println(a, b, i-1)
+
+ return i
+}