aboutsummaryrefslogtreecommitdiff
path: root/internal/commitquery/parent.go
blob: 17695e09ddf3307d47cb26659587e8e01e7a8543 (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/format/commitgraph/read"
	"codeberg.org/lindenii/furgit/objectid"
)

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

// Parents returns resolved parent node indices for one internal node.
func (ctx *Context) Parents(idx NodeIndex) []NodeIndex {
	return ctx.nodes[idx].parents
}

// resolveParent resolves one parent descriptor to one internal node.
func (ctx *Context) resolveParent(parent Parent) (NodeIndex, error) {
	if parent.HasGraphPos {
		return ctx.ResolveGraphPos(parent.GraphPos)
	}

	return ctx.ResolveOID(parent.ID)
}