Documentation
¶
Index ¶
- func NewAnd(left, right Node) *nodeAnd
- func NewNAnd(negative, regular Node) *nodeNAnd
- func NewNot(child Node, minID, maxID LID) *nodeNot
- func NewOr(left, right Node) *nodeOr
- func NewRange(minVal, maxVal LID) *nodeRange
- func TreeFold[V any](op func(V, V) V, def V, values []V) V
- type LID
- type Node
- type Sourced
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type LID ¶ added in v0.69.0
type LID struct {
// contains filtered or unexported fields
}
LID is an encoded representation of LID and reverse flag made specifically for fast compare operations.
For reverse order LID is inverted as follows: "MaxUint32 - LID" formula using XOR mask. Terminal LID value is 0 instead of MaxUint32 in reverse order, but 0 is XORed to MaxUint32. Which means, null value will always have lid field set to 0xFFFFFFFF (math.MaxUint32) regardless of reverse (order) flag.
func NewDescLID ¶ added in v0.69.0
NewDescLID returns LIDs for desc sort order
type Node ¶
type Node interface {
fmt.Stringer // for testing
Next() LID
// NextGeq returns next greater or equal (GEQ) lid
NextGeq(nextID LID) LID
}
func BuildORTree ¶
func MakeStaticNodes ¶
MakeStaticNodes is currently used only for tests
type Sourced ¶
type Sourced interface {
fmt.Stringer // for testing
// aggregation need source
NextSourced() (id LID, source uint32)
NextSourcedGeq(nextLID LID) (id LID, source uint32)
}
func BuildORTreeAgg ¶
func NewNodeOrAgg ¶
func NewSourcedNodeWrapper ¶
func WrapWithSource ¶
Click to show internal directories.
Click to hide internal directories.