diff options
author | obscuren <geffobscura@gmail.com> | 2014-10-10 23:00:06 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-10-10 23:00:06 +0800 |
commit | e02c0fa8088943bc995d290e58a7226f4a0ece91 (patch) | |
tree | 1bc2ac212b46d3892dd2720304efb2ab97e43528 /ethtrie/slice.go | |
parent | 9b494c68698cbcaa4d8d6e0f2b964d29db815da5 (diff) | |
download | go-tangerine-e02c0fa8088943bc995d290e58a7226f4a0ece91.tar go-tangerine-e02c0fa8088943bc995d290e58a7226f4a0ece91.tar.gz go-tangerine-e02c0fa8088943bc995d290e58a7226f4a0ece91.tar.bz2 go-tangerine-e02c0fa8088943bc995d290e58a7226f4a0ece91.tar.lz go-tangerine-e02c0fa8088943bc995d290e58a7226f4a0ece91.tar.xz go-tangerine-e02c0fa8088943bc995d290e58a7226f4a0ece91.tar.zst go-tangerine-e02c0fa8088943bc995d290e58a7226f4a0ece91.zip |
Added generic big to 256 method. Implemented new iterator
Diffstat (limited to 'ethtrie/slice.go')
-rw-r--r-- | ethtrie/slice.go | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/ethtrie/slice.go b/ethtrie/slice.go index cf4e8df7a..f0edc9532 100644 --- a/ethtrie/slice.go +++ b/ethtrie/slice.go @@ -1,6 +1,9 @@ package ethtrie -import "math" +import ( + "bytes" + "math" +) // Helper function for comparing slices func CompareIntSlice(a, b []int) bool { @@ -16,7 +19,7 @@ func CompareIntSlice(a, b []int) bool { } // Returns the amount of nibbles that match each other from 0 ... -func MatchingNibbleLength(a, b []int) int { +func MatchingNibbleLength(a, b []byte) int { var i, length = 0, int(math.Min(float64(len(a)), float64(len(b)))) for i < length { @@ -28,3 +31,23 @@ func MatchingNibbleLength(a, b []int) int { return i } + +func HasTerm(s []byte) bool { + return s[len(s)-1] == 16 +} + +func RemTerm(s []byte) []byte { + if HasTerm(s) { + return s[:len(s)-1] + } + + return s +} + +func BeginsWith(a, b []byte) bool { + if len(b) > len(a) { + return false + } + + return bytes.Equal(a[:len(b)], b) +} |