diff options
| author | 2026-03-07 16:25:36 +0800 | |
|---|---|---|
| committer | 2026-03-07 16:43:59 +0800 | |
| commit | a0d2b3a238d6e5dcdedb816cf838dd8fe003c632 (patch) | |
| tree | 98b4026797c7e731f3ce01bd11dd102e58b116d0 /refstore/reading.go | |
| parent | testgit: While I'm at it, add a tiny path escape hatch just for occasional use (diff) | |
| signature | No signature | |
refstore: Split files
Diffstat (limited to 'refstore/reading.go')
| -rw-r--r-- | refstore/reading.go | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/refstore/reading.go b/refstore/reading.go new file mode 100644 index 00000000..eb499deb --- /dev/null +++ b/refstore/reading.go @@ -0,0 +1,29 @@ +package refstore + +import "codeberg.org/lindenii/furgit/ref" + +// ReadingStore reads Git references. +type ReadingStore interface { + // Resolve resolves a reference name to either a symbolic or detached ref. + // + // Implementations should return value forms (ref.Detached or ref.Symbolic), + // not pointer forms. + // If the reference does not exist, implementations should return + // ErrReferenceNotFound. + Resolve(name string) (ref.Ref, error) + // ResolveFully resolves a reference name to a detached object ID. + // + // Implementations may use backend-local lookup semantics for symbolic hops. + // Callers that need cross-backend symbolic resolution (for example in a + // chain of stores) should prefer repeatedly calling Resolve. + // + // ResolveFully resolves symbolic references only. It does not imply peeling + // annotated tag objects. + ResolveFully(name string) (ref.Detached, error) + // List returns references matching pattern. + // + // The exact pattern language is backend-defined. + List(pattern string) ([]ref.Ref, error) + // Close releases resources associated with the store. + Close() error +} |
