sortedset

package
v0.6.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 21, 2022 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

All represents the bitmap of the whole set.

Variables

This section is empty.

Functions

This section is empty.

Types

type Cluster added in v0.2.0

type Cluster struct {
	Set
	// contains filtered or unexported fields
}

Cluster is a sortedset that keeps track of duplicates.

func NewCluster added in v0.2.0

func NewCluster() Cluster

NewCluster returns a new empty Cluster.

func (Cluster) Equal added in v0.2.0

func (c Cluster) Equal(other Cluster) bool

Equal tests for equality with another Cluster.

func (Cluster) Format added in v0.4.4

func (c Cluster) Format(f fmt.State, r rune)

Format implements fmt.Formatter interface.

func (*Cluster) Insert added in v0.2.0

func (c *Cluster) Insert(b []byte) bool

Insert a []byte into the cluster and updates the element counts. Returns true if the element is new, false otherwise.

func (*Cluster) IntersectCluster added in v0.2.0

func (c *Cluster) IntersectCluster(committeeSet uint64) Cluster

IntersectCluster performs an intersect operation with a Cluster represented through a uint64 bitmap.

func (Cluster) MarshalJSON added in v0.4.4

func (c Cluster) MarshalJSON() ([]byte, error)

MarshalJSON ...

func (Cluster) OccurrencesOf added in v0.2.0

func (c Cluster) OccurrencesOf(b []byte) int

OccurrencesOf return the occurrence a []byte has been inserted in the cluster.

func (*Cluster) Remove added in v0.2.0

func (c *Cluster) Remove(b []byte) bool

Remove a []byte from the cluster and updates the element counts. Returns false if the element cannot be found.

func (*Cluster) RemoveAll added in v0.2.0

func (c *Cluster) RemoveAll(b []byte) int

RemoveAll occurrences of a []byte from the cluster and updates the element counts. Returns the amount of occurrences that have been removed.

func (Cluster) TotalOccurrences added in v0.2.0

func (c Cluster) TotalOccurrences() int

TotalOccurrences returns the amount of elements in the cluster.

func (Cluster) Unravel added in v0.2.0

func (c Cluster) Unravel() [][]byte

Unravel creates a sorted array of []byte adding as many duplicates as the occurrence of the various elements in ascending order.

type SafeSet added in v0.6.0

type SafeSet struct {
	Set
	// contains filtered or unexported fields
}

SafeSet is a wrapper of Set but with explicit Lock/Unlock methods.

func NewSafeSet added in v0.6.0

func NewSafeSet() SafeSet

NewSafeSet creates SafeSet.

func (*SafeSet) Lock added in v0.6.0

func (v *SafeSet) Lock()

Lock locks underlying data explicitly.

func (*SafeSet) Reset added in v0.6.0

func (v *SafeSet) Reset()

Reset resets underlying data.

func (*SafeSet) Unlock added in v0.6.0

func (v *SafeSet) Unlock()

Unlock unlocks underlying data explicitly.

type Set

type Set []*big.Int

Set is an ordered set of big.Int.

func New

func New() Set

New creates a new instance of a sorted set.

func (*Set) Bits

func (v *Set) Bits(subset Set) uint64

Bits creates a bit representation of the subset of a Set. The subset is passed by value.

func (Set) Bytes added in v0.6.0

func (v Set) Bytes(i int, size int) []byte

Bytes returns bytes of item at position `i` in zero-extended slice up to len of `size`.

func (*Set) Contains added in v0.4.4

func (v *Set) Contains(b []byte) bool

Contains returns true if Set contains b.

func (Set) Copy added in v0.4.0

func (v Set) Copy() Set

Copy deeply a set.

func (Set) Equal

func (v Set) Equal(other Set) bool

Equal tests a set for equality.

func (Set) Format added in v0.4.4

func (v Set) Format(f fmt.State, c rune)

Format implements fmt.Formatter interface.

func (Set) IndexOf

func (v Set) IndexOf(b []byte) (int, bool)

IndexOf returns the index at which a byte slice should be inserted and whether the element is actually found or otherwise. Internally uses big.Int representation.

func (*Set) Insert

func (v *Set) Insert(b []byte) bool

Insert a big.Int representation of a BLS key at a proper index (respectful of the VotingCommittee order). If the element is already in the VotingCommittee does nothing and returns false.

func (Set) Intersect

func (v Set) Intersect(committeeSet uint64) Set

Intersect the bit representation of a VotingCommittee subset with the whole VotingCommittee set.

func (Set) Len

func (v Set) Len() int

Len complies with the Sort interface.

func (Set) Less

func (v Set) Less(i, j int) bool

Less complies with the Sort interface.

func (*Set) Remove

func (v *Set) Remove(pubKeyBLS []byte) bool

Remove an entry from the set. Return false if the entry can't be found.

func (Set) String

func (v Set) String() string

func (Set) Swap

func (v Set) Swap(i, j int)

Swap complies with the Sort interface.

func (Set) Whole

func (v Set) Whole() uint64

Whole returns the bitmap of all the elements within the set.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL