aboutsummaryrefslogtreecommitdiff
path: root/object/stored/blob.go
diff options
context:
space:
mode:
Diffstat (limited to 'object/stored/blob.go')
-rw-r--r--object/stored/blob.go35
1 files changed, 35 insertions, 0 deletions
diff --git a/object/stored/blob.go b/object/stored/blob.go
new file mode 100644
index 00000000..4b3b6b74
--- /dev/null
+++ b/object/stored/blob.go
@@ -0,0 +1,35 @@
+package stored
+
+import (
+ "codeberg.org/lindenii/furgit/object"
+ "codeberg.org/lindenii/furgit/objectid"
+)
+
+// StoredBlob is a parsed blob paired with its storage ID.
+//
+// This Blob object is fully materialized in memory.
+// Consider using objectstore/Store.ReadReaderContent.
+type StoredBlob struct {
+ id objectid.ObjectID
+ blob *object.Blob
+}
+
+// NewStoredBlob creates one stored blob wrapper.
+func NewStoredBlob(id objectid.ObjectID, blob *object.Blob) *StoredBlob {
+ return &StoredBlob{id: id, blob: blob}
+}
+
+// ID returns the object ID this blob was loaded from.
+func (stored *StoredBlob) ID() objectid.ObjectID {
+ return stored.id
+}
+
+// Object returns the parsed blob as the generic object interface.
+func (stored *StoredBlob) Object() object.Object {
+ return stored.blob
+}
+
+// Blob returns the parsed blob value.
+func (stored *StoredBlob) Blob() *object.Blob {
+ return stored.blob
+}