arnaucube
arnaucube/asmtPublic Self-hosted repository
asmt/smt/util.go
smt/util.goRaw
 1/**
 2 *  @file
 3 *  @copyright defined in aergo/LICENSE.txt
 4 */
 5
 6package trie
 7
 8import (
 9	"bytes"
10)
11
12var (
13	// Trie default value : [byte(0)]
14	DefaultLeaf = []byte{0}
15)
16
17const (
18	HashLength   = 32
19	maxPastTries = 300
20)
21
22type Hash [HashLength]byte
23
24func bitIsSet(bits []byte, i int) bool {
25	return bits[i/8]&(1<<uint(7-i%8)) != 0
26}
27func bitSet(bits []byte, i int) {
28	bits[i/8] |= 1 << uint(7-i%8)
29}
30
31// for sorting test data
32type DataArray [][]byte
33
34func (d DataArray) Len() int {
35	return len(d)
36}
37func (d DataArray) Swap(i, j int) {
38	d[i], d[j] = d[j], d[i]
39}
40func (d DataArray) Less(i, j int) bool {
41	return bytes.Compare(d[i], d[j]) == -1
42}