Documentation
¶
Index ¶
- Constants
- Variables
- func LeavesCount(height int) int
- func LevelDiff(l int, discriminant *Bitset, digests1, digests2 []Digest) (levelDiffCount int)
- func NodesCount(height int) int
- type AggregatedHashTree
- type AggregatedHashTreeRangeReader
- type Bitset
- func (bset *Bitset) AllSet() bool
- func (bset *Bitset) Clone() *Bitset
- func (bset *Bitset) IsSet(i int) bool
- func (bset *Bitset) Marshal() ([]byte, error)
- func (bset *Bitset) Reset() *Bitset
- func (bset *Bitset) Set(i int) *Bitset
- func (bset *Bitset) SetAll() *Bitset
- func (bset *Bitset) SetCount() int
- func (bset *Bitset) Size() int
- func (bset *Bitset) Unmarshal(b []byte) error
- func (bset *Bitset) Unset(i int) *Bitset
- type CompactHashTree
- func (ht *CompactHashTree) AggregateLeafWith(i uint64, val []byte) error
- func (ht *CompactHashTree) Capacity() uint64
- func (ht *CompactHashTree) Clone() AggregatedHashTree
- func (ht *CompactHashTree) Diff(ht2 AggregatedHashTree) (discriminant *Bitset, err error)
- func (ht *CompactHashTree) DiffUsing(ht2 AggregatedHashTree, discriminant *Bitset, digests1, digests2 []Digest) error
- func (ht *CompactHashTree) Height() int
- func (ht *CompactHashTree) Level(level int, discriminant *Bitset, digests []Digest) (n int, err error)
- func (ht *CompactHashTree) NewRangeReader(discriminant *Bitset) AggregatedHashTreeRangeReader
- func (ht *CompactHashTree) Reset()
- func (ht *CompactHashTree) Root() Digest
- func (ht *CompactHashTree) Serialize(w io.Writer) (n int64, err error)
- func (ht *CompactHashTree) Sync()
- type CompactHashTreeDiffReader
- type Digest
- type HashTree
- func (ht *HashTree) AggregateLeafWith(i uint64, val []byte) error
- func (ht *HashTree) Clone() AggregatedHashTree
- func (ht *HashTree) Diff(ht2 AggregatedHashTree) (discriminant *Bitset, err error)
- func (ht *HashTree) DiffUsing(ht2 AggregatedHashTree, discriminant *Bitset, digests1, digests2 []Digest) error
- func (ht *HashTree) Height() int
- func (ht *HashTree) Level(level int, discriminant *Bitset, digests []Digest) (n int, err error)
- func (ht *HashTree) NewRangeReader(discriminant *Bitset) AggregatedHashTreeRangeReader
- func (ht *HashTree) Reset()
- func (ht *HashTree) Root() Digest
- func (ht *HashTree) Serialize(w io.Writer) (n int64, err error)
- func (ht *HashTree) Sync()
- type HashTreeDiffReader
- type MultiSegmentHashTree
- func (ht *MultiSegmentHashTree) AggregateLeafWith(i uint64, val []byte) error
- func (ht *MultiSegmentHashTree) Clone() AggregatedHashTree
- func (ht *MultiSegmentHashTree) Diff(ht2 AggregatedHashTree) (discriminant *Bitset, err error)
- func (ht *MultiSegmentHashTree) DiffUsing(ht2 AggregatedHashTree, discriminant *Bitset, digests1, digests2 []Digest) error
- func (ht *MultiSegmentHashTree) Height() int
- func (ht *MultiSegmentHashTree) Level(level int, discriminant *Bitset, digests []Digest) (n int, err error)
- func (ht *MultiSegmentHashTree) NewRangeReader(discriminant *Bitset) AggregatedHashTreeRangeReader
- func (ht *MultiSegmentHashTree) Reset()
- func (ht *MultiSegmentHashTree) Root() Digest
- func (ht *MultiSegmentHashTree) Segments() []Segment
- func (ht *MultiSegmentHashTree) Serialize(w io.Writer) (n int64, err error)
- func (ht *MultiSegmentHashTree) Sync()
- type MultiSegmentHashTreeDiffReader
- type Segment
- type SegmentedHashTree
- func (ht *SegmentedHashTree) AggregateLeafWith(i uint64, val []byte) error
- func (ht *SegmentedHashTree) Clone() AggregatedHashTree
- func (ht *SegmentedHashTree) Diff(ht2 AggregatedHashTree) (discriminant *Bitset, err error)
- func (ht *SegmentedHashTree) DiffUsing(ht2 AggregatedHashTree, discriminant *Bitset, digests1, digests2 []Digest) error
- func (ht *SegmentedHashTree) Height() int
- func (ht *SegmentedHashTree) Level(level int, discriminant *Bitset, digests []Digest) (n int, err error)
- func (ht *SegmentedHashTree) NewRangeReader(discriminant *Bitset) AggregatedHashTreeRangeReader
- func (ht *SegmentedHashTree) Reset()
- func (ht *SegmentedHashTree) Root() Digest
- func (ht *SegmentedHashTree) SegmentSize() uint64
- func (ht *SegmentedHashTree) Segments() []uint64
- func (ht *SegmentedHashTree) Serialize(w io.Writer) (n int64, err error)
- func (ht *SegmentedHashTree) Sync()
- type SegmentedHashTreeDiffReader
Constants ¶
View Source
const DigestLength int = 16
View Source
const SegmentLength = 16
Variables ¶
View Source
var ( ErrIllegalArguments = errors.New("illegal arguments") ErrIllegalState = errors.New("illegal state") )
View Source
var ErrNoMoreRanges = errors.New("no more ranges")
Functions ¶
func LeavesCount ¶
func NodesCount ¶
Types ¶
type AggregatedHashTree ¶
type AggregatedHashTree interface { Height() int AggregateLeafWith(i uint64, val []byte) error Sync() Root() Digest Level(level int, discriminant *Bitset, digests []Digest) (n int, err error) Reset() Clone() AggregatedHashTree Diff(ht AggregatedHashTree) (discriminant *Bitset, err error) DiffUsing(ht AggregatedHashTree, discriminant *Bitset, digests1, digests2 []Digest) error NewRangeReader(discriminant *Bitset) AggregatedHashTreeRangeReader Serialize(w io.Writer) (n int64, err error) }
type CompactHashTree ¶
type CompactHashTree struct {
// contains filtered or unexported fields
}
func DeserializeCompactHashTree ¶
func DeserializeCompactHashTree(r io.Reader) (*CompactHashTree, error)
func NewCompactHashTree ¶
func NewCompactHashTree(capacity uint64, maxHeight int) (*CompactHashTree, error)
func (*CompactHashTree) AggregateLeafWith ¶
func (ht *CompactHashTree) AggregateLeafWith(i uint64, val []byte) error
AggregateLeafWith aggregates a new value into a shared leaf Each compacted leaf is shared by a number of consecutive leaves
func (*CompactHashTree) Capacity ¶
func (ht *CompactHashTree) Capacity() uint64
func (*CompactHashTree) Clone ¶
func (ht *CompactHashTree) Clone() AggregatedHashTree
func (*CompactHashTree) Diff ¶
func (ht *CompactHashTree) Diff(ht2 AggregatedHashTree) (discriminant *Bitset, err error)
func (*CompactHashTree) DiffUsing ¶
func (ht *CompactHashTree) DiffUsing(ht2 AggregatedHashTree, discriminant *Bitset, digests1, digests2 []Digest) error
func (*CompactHashTree) Height ¶
func (ht *CompactHashTree) Height() int
func (*CompactHashTree) NewRangeReader ¶
func (ht *CompactHashTree) NewRangeReader(discriminant *Bitset) AggregatedHashTreeRangeReader
func (*CompactHashTree) Reset ¶
func (ht *CompactHashTree) Reset()
func (*CompactHashTree) Root ¶
func (ht *CompactHashTree) Root() Digest
func (*CompactHashTree) Serialize ¶
func (ht *CompactHashTree) Serialize(w io.Writer) (n int64, err error)
func (*CompactHashTree) Sync ¶
func (ht *CompactHashTree) Sync()
type CompactHashTreeDiffReader ¶
type CompactHashTreeDiffReader struct {
// contains filtered or unexported fields
}
type Digest ¶
type Digest [2]uint64
func (*Digest) MarshalBinary ¶
func (*Digest) MarshalJSON ¶
func (*Digest) UnmarshalBinary ¶
func (*Digest) UnmarshalJSON ¶
type HashTree ¶
type HashTree struct {
// contains filtered or unexported fields
}
HashTree is a fixed-size hash tree with leaf aggregation and partial root recalculation.
func NewHashTree ¶
func (*HashTree) AggregateLeafWith ¶
func (*HashTree) Clone ¶
func (ht *HashTree) Clone() AggregatedHashTree
func (*HashTree) Diff ¶
func (ht *HashTree) Diff(ht2 AggregatedHashTree) (discriminant *Bitset, err error)
func (*HashTree) DiffUsing ¶
func (ht *HashTree) DiffUsing(ht2 AggregatedHashTree, discriminant *Bitset, digests1, digests2 []Digest) error
func (*HashTree) NewRangeReader ¶
func (ht *HashTree) NewRangeReader(discriminant *Bitset) AggregatedHashTreeRangeReader
type HashTreeDiffReader ¶
type HashTreeDiffReader struct {
// contains filtered or unexported fields
}
type MultiSegmentHashTree ¶
type MultiSegmentHashTree struct {
// contains filtered or unexported fields
}
func DeserializeMultiSegmentHashTree ¶
func DeserializeMultiSegmentHashTree(r io.Reader) (*MultiSegmentHashTree, error)
func NewMultiSegmentHashTree ¶
func NewMultiSegmentHashTree(segments []Segment, maxHeight int) (*MultiSegmentHashTree, error)
func (*MultiSegmentHashTree) AggregateLeafWith ¶
func (ht *MultiSegmentHashTree) AggregateLeafWith(i uint64, val []byte) error
func (*MultiSegmentHashTree) Clone ¶
func (ht *MultiSegmentHashTree) Clone() AggregatedHashTree
func (*MultiSegmentHashTree) Diff ¶
func (ht *MultiSegmentHashTree) Diff(ht2 AggregatedHashTree) (discriminant *Bitset, err error)
func (*MultiSegmentHashTree) DiffUsing ¶
func (ht *MultiSegmentHashTree) DiffUsing(ht2 AggregatedHashTree, discriminant *Bitset, digests1, digests2 []Digest) error
func (*MultiSegmentHashTree) Height ¶
func (ht *MultiSegmentHashTree) Height() int
func (*MultiSegmentHashTree) NewRangeReader ¶
func (ht *MultiSegmentHashTree) NewRangeReader(discriminant *Bitset) AggregatedHashTreeRangeReader
func (*MultiSegmentHashTree) Reset ¶
func (ht *MultiSegmentHashTree) Reset()
func (*MultiSegmentHashTree) Root ¶
func (ht *MultiSegmentHashTree) Root() Digest
func (*MultiSegmentHashTree) Segments ¶
func (ht *MultiSegmentHashTree) Segments() []Segment
func (*MultiSegmentHashTree) Serialize ¶
func (ht *MultiSegmentHashTree) Serialize(w io.Writer) (n int64, err error)
func (*MultiSegmentHashTree) Sync ¶
func (ht *MultiSegmentHashTree) Sync()
type MultiSegmentHashTreeDiffReader ¶
type MultiSegmentHashTreeDiffReader struct {
// contains filtered or unexported fields
}
type Segment ¶
type Segment [2]uint64
func NewSegment ¶
func (*Segment) MarshalBinary ¶
func (*Segment) UnmarshalBinary ¶
type SegmentedHashTree ¶
type SegmentedHashTree struct {
// contains filtered or unexported fields
}
func DeserializeSegmentedHashTree ¶
func DeserializeSegmentedHashTree(r io.Reader) (*SegmentedHashTree, error)
func NewSegmentedHashTree ¶
func NewSegmentedHashTree(segmentSize uint64, segments []uint64, maxHeight int) (*SegmentedHashTree, error)
func (*SegmentedHashTree) AggregateLeafWith ¶
func (ht *SegmentedHashTree) AggregateLeafWith(i uint64, val []byte) error
func (*SegmentedHashTree) Clone ¶
func (ht *SegmentedHashTree) Clone() AggregatedHashTree
func (*SegmentedHashTree) Diff ¶
func (ht *SegmentedHashTree) Diff(ht2 AggregatedHashTree) (discriminant *Bitset, err error)
func (*SegmentedHashTree) DiffUsing ¶
func (ht *SegmentedHashTree) DiffUsing(ht2 AggregatedHashTree, discriminant *Bitset, digests1, digests2 []Digest) error
func (*SegmentedHashTree) Height ¶
func (ht *SegmentedHashTree) Height() int
func (*SegmentedHashTree) NewRangeReader ¶
func (ht *SegmentedHashTree) NewRangeReader(discriminant *Bitset) AggregatedHashTreeRangeReader
func (*SegmentedHashTree) Reset ¶
func (ht *SegmentedHashTree) Reset()
func (*SegmentedHashTree) Root ¶
func (ht *SegmentedHashTree) Root() Digest
func (*SegmentedHashTree) SegmentSize ¶
func (ht *SegmentedHashTree) SegmentSize() uint64
func (*SegmentedHashTree) Segments ¶
func (ht *SegmentedHashTree) Segments() []uint64
func (*SegmentedHashTree) Serialize ¶
func (ht *SegmentedHashTree) Serialize(w io.Writer) (n int64, err error)
func (*SegmentedHashTree) Sync ¶
func (ht *SegmentedHashTree) Sync()
type SegmentedHashTreeDiffReader ¶
type SegmentedHashTreeDiffReader struct {
// contains filtered or unexported fields
}
Source Files
¶
- aggregated_hashtree.go
- bitset.go
- compact_hashtree.go
- compact_hashtree_diff.go
- compact_hashtree_range_reader.go
- compact_hashtree_serialization.go
- digest.go
- hashtree.go
- hashtree_diff.go
- hashtree_range_reader.go
- hashtree_serialization.go
- multi_segment_hashtree.go
- multi_segment_hashtree_diff.go
- multi_segment_hashtree_range_reader.go
- multi_segment_hashtree_serialization.go
- segmented_hashtree.go
- segmented_hashtree_diff.go
- segmented_hashtree_range_reader.go
- segmented_hashtree_serialization.go
Click to show internal directories.
Click to hide internal directories.