aboutsummaryrefslogtreecommitdiff
path: root/refstore
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-02-21 02:06:15 +0800
committerGravatar Runxi Yu2026-02-21 02:06:15 +0800
commit1b17776bcb3ffa1c270ceb3dcfc6f0ee815d9426 (patch)
tree08d358fe7db5718cecd43bf561b678b687d74a23 /refstore
parentref: Add Ref, Detached, Symbolic (diff)
signatureNo signature
refstore: Add basic reference store interfaces
Diffstat (limited to 'refstore')
-rw-r--r--refstore/refstore.go19
1 files changed, 19 insertions, 0 deletions
diff --git a/refstore/refstore.go b/refstore/refstore.go
new file mode 100644
index 00000000..08f00f17
--- /dev/null
+++ b/refstore/refstore.go
@@ -0,0 +1,19 @@
+package refstore
+
+import (
+ "errors"
+
+ "codeberg.org/lindenii/furgit/ref"
+)
+
+// ErrReferenceNotFound indicates that a reference does not exist in a backend.
+// TODO: interface error? just like object not found in objectstore
+var ErrReferenceNotFound = errors.New("refstore: reference not found")
+
+// Store reads Git references.
+type Store interface {
+ Resolve(name string) (ref.Ref, error)
+ ResolveFully(name string) (ref.Detached, error)
+ List(pattern string) ([]ref.Ref, error)
+ Close() error
+}