diff options
Diffstat (limited to 'internal/commitquery/context.go')
| -rw-r--r-- | internal/commitquery/context.go | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/internal/commitquery/context.go b/internal/commitquery/context.go new file mode 100644 index 00000000..f39c32c8 --- /dev/null +++ b/internal/commitquery/context.go @@ -0,0 +1,32 @@ +// Package commitquery provides private commit-domain query routines. +package commitquery + +import ( + commitgraphread "codeberg.org/lindenii/furgit/format/commitgraph/read" + "codeberg.org/lindenii/furgit/objectid" + "codeberg.org/lindenii/furgit/objectstore" +) + +// Context owns the mutable node arena for one commit query. +type Context struct { + store objectstore.Store + graph *commitgraphread.Reader + + nodes []node + + byOID map[objectid.ObjectID]NodeIndex + byGraphPos map[commitgraphread.Position]NodeIndex + + markPhase uint32 + touched []NodeIndex +} + +// NewContext builds one empty query context over one object store and optional commit-graph reader. +func NewContext(store objectstore.Store, graph *commitgraphread.Reader) *Context { + return &Context{ + store: store, + graph: graph, + byOID: make(map[objectid.ObjectID]NodeIndex), + byGraphPos: make(map[commitgraphread.Position]NodeIndex), + } +} |
