diff options
| author | 2026-03-19 15:13:44 +0000 | |
|---|---|---|
| committer | 2026-03-19 15:20:02 +0000 | |
| commit | 1a8842b33d6d83d1754267e087fd7b4f73ca9e91 (patch) | |
| tree | 02149613c4caa929b959f930985c8ff8ff421a07 /object | |
| parent | TODO: Updates on receive-pack and error handling (diff) | |
| signature | No signature | |
object/stored: Use generics
Diffstat (limited to 'object')
| -rw-r--r-- | object/stored/blob.go | 35 | ||||
| -rw-r--r-- | object/stored/commit.go | 32 | ||||
| -rw-r--r-- | object/stored/object.go | 14 | ||||
| -rw-r--r-- | object/stored/objectstored.go | 32 | ||||
| -rw-r--r-- | object/stored/stored.go | 31 | ||||
| -rw-r--r-- | object/stored/tree.go | 32 |
6 files changed, 31 insertions, 145 deletions
diff --git a/object/stored/blob.go b/object/stored/blob.go deleted file mode 100644 index 4b3b6b74..00000000 --- a/object/stored/blob.go +++ /dev/null @@ -1,35 +0,0 @@ -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 -} diff --git a/object/stored/commit.go b/object/stored/commit.go deleted file mode 100644 index 880ba40c..00000000 --- a/object/stored/commit.go +++ /dev/null @@ -1,32 +0,0 @@ -package stored - -import ( - "codeberg.org/lindenii/furgit/object" - "codeberg.org/lindenii/furgit/objectid" -) - -// StoredCommit is a parsed commit paired with its storage ID. -type StoredCommit struct { - id objectid.ObjectID - commit *object.Commit -} - -// NewStoredCommit creates one stored commit wrapper. -func NewStoredCommit(id objectid.ObjectID, commit *object.Commit) *StoredCommit { - return &StoredCommit{id: id, commit: commit} -} - -// ID returns the object ID this commit was loaded from. -func (stored *StoredCommit) ID() objectid.ObjectID { - return stored.id -} - -// Object returns the parsed commit as the generic object interface. -func (stored *StoredCommit) Object() object.Object { - return stored.commit -} - -// Commit returns the parsed commit value. -func (stored *StoredCommit) Commit() *object.Commit { - return stored.commit -} diff --git a/object/stored/object.go b/object/stored/object.go deleted file mode 100644 index c0a0db8f..00000000 --- a/object/stored/object.go +++ /dev/null @@ -1,14 +0,0 @@ -package stored - -import ( - "codeberg.org/lindenii/furgit/object" - "codeberg.org/lindenii/furgit/objectid" -) - -// StoredObject is a parsed object paired with its storage ID. -type StoredObject interface { - // ID returns the object ID the object was loaded from. - ID() objectid.ObjectID - // Object returns the parsed object value. - Object() object.Object -} diff --git a/object/stored/objectstored.go b/object/stored/objectstored.go deleted file mode 100644 index ff7d516a..00000000 --- a/object/stored/objectstored.go +++ /dev/null @@ -1,32 +0,0 @@ -package stored - -import ( - "codeberg.org/lindenii/furgit/object" - "codeberg.org/lindenii/furgit/objectid" -) - -// StoredTag is a parsed tag paired with its storage ID. -type StoredTag struct { - id objectid.ObjectID - tag *object.Tag -} - -// NewStoredTag creates one stored tag wrapper. -func NewStoredTag(id objectid.ObjectID, tag *object.Tag) *StoredTag { - return &StoredTag{id: id, tag: tag} -} - -// ID returns the object ID this tag was loaded from. -func (stored *StoredTag) ID() objectid.ObjectID { - return stored.id -} - -// Object returns the parsed tag as the generic object interface. -func (stored *StoredTag) Object() object.Object { - return stored.tag -} - -// Tag returns the parsed tag value. -func (stored *StoredTag) Tag() *object.Tag { - return stored.tag -} diff --git a/object/stored/stored.go b/object/stored/stored.go index 588b1726..3e0352d1 100644 --- a/object/stored/stored.go +++ b/object/stored/stored.go @@ -1,2 +1,33 @@ // Package stored wraps parsed objects with their storage object IDs. +// +// Stored values are typically instantiated with pointer object types such as +// *object.Blob, *object.Tree, *object.Commit, or *object.Tag, because those +// pointer types satisfy object.Object. package stored + +import ( + "codeberg.org/lindenii/furgit/object" + "codeberg.org/lindenii/furgit/objectid" +) + +// Stored represents a stored object, +// i.e., an object along with its object ID. +type Stored[T object.Object] struct { + id objectid.ObjectID + obj T +} + +// New creates one stored object wrapper. +func New[T object.Object](id objectid.ObjectID, obj T) *Stored[T] { + return &Stored[T]{id: id, obj: obj} +} + +// ID returns the object ID. +func (stored *Stored[T]) ID() objectid.ObjectID { + return stored.id +} + +// Object returns the wrapped object as itself. +func (stored *Stored[T]) Object() T { + return stored.obj +} diff --git a/object/stored/tree.go b/object/stored/tree.go deleted file mode 100644 index a54c1f6e..00000000 --- a/object/stored/tree.go +++ /dev/null @@ -1,32 +0,0 @@ -package stored - -import ( - "codeberg.org/lindenii/furgit/object" - "codeberg.org/lindenii/furgit/objectid" -) - -// StoredTree is a parsed tree paired with its storage ID. -type StoredTree struct { - id objectid.ObjectID - tree *object.Tree -} - -// NewStoredTree creates one stored tree wrapper. -func NewStoredTree(id objectid.ObjectID, tree *object.Tree) *StoredTree { - return &StoredTree{id: id, tree: tree} -} - -// ID returns the object ID this tree was loaded from. -func (stored *StoredTree) ID() objectid.ObjectID { - return stored.id -} - -// Object returns the parsed tree as the generic object interface. -func (stored *StoredTree) Object() object.Object { - return stored.tree -} - -// Tree returns the parsed tree value. -func (stored *StoredTree) Tree() *object.Tree { - return stored.tree -} |
