uint64set

package
v1.142.0 Latest Latest
Warning

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

Go to latest
Published: Apr 28, 2026 License: Apache-2.0 Imports: 9 Imported by: 5

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Set

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

Set is a fast set for uint64.

It should work faster than map[uint64]struct{} for semi-sparse uint64 values such as MetricIDs generated by lib/storage.

It is unsafe calling Set methods from concurrent goroutines.

func Unmarshal added in v1.110.31

func Unmarshal(src []byte) (*Set, []byte, error)

Unmarshal creates an instance of a set from bytes.

The first 8 src bytes contain the set length (number of the elements in the set). Since each element is 8-byte long, the number of remaining src bytes must be at least 8*length, or else the function will return an error. The function will read exactly 8*length bytes and construct an instance of a set. The remaining src bytes will be returned along with the set.

func (*Set) Add

func (s *Set) Add(x uint64)

Add adds x to s.

func (*Set) AddMulti added in v1.39.0

func (s *Set) AddMulti(a []uint64)

AddMulti adds all the items from a to s.

It is usually faster than calling s.Add() for each item in a.

The caller is responsible for splitting a into items with clustered values.

func (*Set) AppendTo

func (s *Set) AppendTo(dst []uint64) []uint64

AppendTo appends all the items from the set to dst and returns the result.

The returned items are sorted.

AppendTo can mutate s.

func (*Set) Clone

func (s *Set) Clone() *Set

Clone returns an independent copy of s.

func (*Set) Del

func (s *Set) Del(x uint64)

Del deletes x from s.

func (*Set) Equal added in v1.29.0

func (s *Set) Equal(a *Set) bool

Equal returns true if s contains the same items as a.

func (*Set) ForEach added in v1.32.3

func (s *Set) ForEach(f func(part []uint64) bool)

ForEach calls f for all the items stored in s.

Each call to f contains part with arbitrary part of items stored in the set. The iteration is stopped if f returns false.

func (*Set) Has

func (s *Set) Has(x uint64) bool

Has verifies whether x exists in s.

func (*Set) Intersect added in v1.29.0

func (s *Set) Intersect(a *Set)

Intersect removes all the items missing in a from s.

func (*Set) Len

func (s *Set) Len() int

Len returns the number of distinct uint64 values in s.

func (*Set) Marshal added in v1.110.31

func (s *Set) Marshal(dst []byte) []byte

Marshal encodes the set as a sequence of bytes.

The first 8 bytes contain the length of the set (number of the elements the set contains). The subsequent bytes are actual uint64 elements.

The marshaling result is appended to the end of dst, i.e. the initial dst content is not overwritten.

func (*Set) SizeBytes added in v1.29.2

func (s *Set) SizeBytes() uint64

SizeBytes returns an estimate size of s in RAM.

func (*Set) Subtract added in v1.29.0

func (s *Set) Subtract(a *Set)

Subtract removes from s all the shared items between s and a.

func (*Set) Union added in v1.28.3

func (s *Set) Union(a *Set)

Union adds all the items from a to s.

func (*Set) UnionMayOwn added in v1.32.6

func (s *Set) UnionMayOwn(a *Set)

UnionMayOwn adds all the items from a to s.

It may own a if s is empty. This means that `a` cannot be used after the call to UnionMayOwn.

Jump to

Keyboard shortcuts

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