aboutsummaryrefslogtreecommitdiff
path: root/commitquery/parent.go
blob: 418779753af888a4a63b0ee1f6d26699fcf6ab3b (about) (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package commitquery

import (
	commitgraphread "codeberg.org/lindenii/furgit/commitgraph/read"
	objectid "codeberg.org/lindenii/furgit/object/id"
)

// parentRef references one commit parent.
type parentRef struct {
	ID          objectid.ObjectID
	GraphPos    commitgraphread.Position
	HasGraphPos bool
}

// Parents returns resolved parent node indices for one internal node.
func (query *Query) parents(idx nodeIndex) []nodeIndex {
	return query.nodes[idx].parents
}

// resolveParent resolves one parent descriptor to one internal node.
func (query *Query) resolveParent(parent parentRef) (nodeIndex, error) {
	if parent.HasGraphPos {
		return query.resolveGraphPos(parent.GraphPos)
	}

	return query.resolveOID(parent.ID)
}