Documentation
¶
Overview ¶
Package commitquery provides private commit-domain query routines.
Index ¶
- func IsAncestor(ctx *Context, ancestor, descendant NodeIndex) (bool, error)
- type Commit
- type Context
- func (ctx *Context) BeginMarkPhase()
- func (ctx *Context) ClearMarks(idx NodeIndex, bits markBits)
- func (ctx *Context) ClearTouchedMarks(bits markBits)
- func (ctx *Context) CommitTime(idx NodeIndex) int64
- func (ctx *Context) Compare(left, right NodeIndex) int
- func (ctx *Context) EffectiveGeneration(idx NodeIndex) uint64
- func (ctx *Context) HasAllMarks(idx NodeIndex, bits markBits) bool
- func (ctx *Context) HasAnyMarks(idx NodeIndex, bits markBits) bool
- func (ctx *Context) ID(idx NodeIndex) objectid.ObjectID
- func (ctx *Context) Marks(idx NodeIndex) markBits
- func (ctx *Context) Parents(idx NodeIndex) []NodeIndex
- func (ctx *Context) ResolveGraphPos(pos commitgraphread.Position) (NodeIndex, error)
- func (ctx *Context) ResolveOID(id objectid.ObjectID) (NodeIndex, error)
- func (ctx *Context) SetMarks(idx NodeIndex, bits markBits)
- type NodeIndex
- type Parent
- type PriorityQueue
- func (queue *PriorityQueue) Len() int
- func (queue *PriorityQueue) Less(left, right int) bool
- func (queue *PriorityQueue) Pop() any
- func (queue *PriorityQueue) PopNode() NodeIndex
- func (queue *PriorityQueue) Push(item any)
- func (queue *PriorityQueue) PushNode(idx NodeIndex)
- func (queue *PriorityQueue) Swap(left, right int)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Commit ¶
type Commit struct {
ID objectid.ObjectID
Parents []Parent
CommitTime int64
Generation uint64
HasGeneration bool
GraphPos commitgraphread.Position
HasGraphPos bool
}
Commit stores the metadata needed by commit-domain queries.
type Context ¶
type Context struct {
// contains filtered or unexported fields
}
Context owns the mutable node arena for one commit query.
func NewContext ¶
func NewContext(store objectstore.Store, graph *commitgraphread.Reader) *Context
NewContext builds one empty query context over one object store and optional commit-graph reader.
func (*Context) BeginMarkPhase ¶
func (ctx *Context) BeginMarkPhase()
BeginMarkPhase starts one tracked mark-mutation phase.
func (*Context) ClearMarks ¶
ClearMarks removes one set of mark bits from one internal node.
func (*Context) ClearTouchedMarks ¶
func (ctx *Context) ClearTouchedMarks(bits markBits)
ClearTouchedMarks clears the provided bits from all nodes touched in the current mark phase.
func (*Context) CommitTime ¶
CommitTime returns the committer timestamp used for one internal node.
func (*Context) EffectiveGeneration ¶
EffectiveGeneration returns one node's generation value.
func (*Context) HasAllMarks ¶
HasAllMarks reports whether one internal node already has all requested bits.
func (*Context) HasAnyMarks ¶
HasAnyMarks reports whether one internal node has any requested bit.
func (*Context) ResolveGraphPos ¶
func (ctx *Context) ResolveGraphPos(pos commitgraphread.Position) (NodeIndex, error)
ResolveGraphPos resolves one commit-graph position to one internal query node.
func (*Context) ResolveOID ¶
ResolveOID resolves one commit object ID to one internal query node.
type Parent ¶
type Parent struct {
ID objectid.ObjectID
GraphPos commitgraphread.Position
HasGraphPos bool
}
Parent references one commit parent.
type PriorityQueue ¶
type PriorityQueue struct {
// contains filtered or unexported fields
}
PriorityQueue orders internal nodes using one query context's comparator.
func NewPriorityQueue ¶
func NewPriorityQueue(ctx *Context) *PriorityQueue
NewPriorityQueue builds one empty priority queue over one query context.
func (*PriorityQueue) Len ¶
func (queue *PriorityQueue) Len() int
Len reports the number of queued items.
func (*PriorityQueue) Less ¶
func (queue *PriorityQueue) Less(left, right int) bool
Less reports whether one heap slot sorts ahead of another.
func (*PriorityQueue) PopNode ¶
func (queue *PriorityQueue) PopNode() NodeIndex
PopNode removes the highest-priority internal node.
func (*PriorityQueue) Push ¶
func (queue *PriorityQueue) Push(item any)
Push appends one heap element.
func (*PriorityQueue) PushNode ¶
func (queue *PriorityQueue) PushNode(idx NodeIndex)
PushNode inserts one internal node.
func (*PriorityQueue) Swap ¶
func (queue *PriorityQueue) Swap(left, right int)
Swap exchanges two heap slots.