diff options
Diffstat (limited to 'commitquery/node_parent.go')
| -rw-r--r-- | commitquery/node_parent.go | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/commitquery/node_parent.go b/commitquery/node_parent.go new file mode 100644 index 00000000..17224701 --- /dev/null +++ b/commitquery/node_parent.go @@ -0,0 +1,27 @@ +package commitquery + +import ( + commitgraphread "codeberg.org/lindenii/furgit/format/commitgraph/read" + objectid "codeberg.org/lindenii/furgit/object/id" +) + +// Parents returns resolved parent node indices for one internal node. +func (query *query) parents(idx nodeIndex) []nodeIndex { + return query.nodes[idx].parents +} + +// parentRef references one commit parent. +type parentRef struct { + ID objectid.ObjectID + GraphPos commitgraphread.Position + HasGraphPos bool +} + +// 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) +} |
