aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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
+}