2014-05-19 20:46:41 -07:00
|
|
|
package merkle
|
|
|
|
|
2014-05-23 23:11:22 -07:00
|
|
|
type Tree interface {
|
2014-10-11 00:52:29 -07:00
|
|
|
Size() (size uint64)
|
|
|
|
Height() (height uint8)
|
|
|
|
Has(key interface{}) (has bool)
|
|
|
|
Get(key interface{}) (index uint64, value interface{})
|
|
|
|
GetByIndex(index uint64) (key interface{}, value interface{})
|
|
|
|
Set(key interface{}, value interface{}) (updated bool)
|
|
|
|
Remove(key interface{}) (value interface{}, removed bool)
|
|
|
|
HashWithCount() (hash []byte, count uint64)
|
|
|
|
Hash() (hash []byte)
|
|
|
|
Save() (hash []byte)
|
|
|
|
Checkpoint() (checkpoint interface{})
|
|
|
|
Restore(checkpoint interface{})
|
2014-05-19 20:46:41 -07:00
|
|
|
}
|
2014-09-14 15:37:32 -07:00
|
|
|
|
|
|
|
type Hashable interface {
|
|
|
|
Hash() []byte
|
|
|
|
}
|