aboutsummaryrefslogtreecommitdiff
path: root/loose.go
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-01-29 22:05:30 +0100
committerGravatar Runxi Yu2026-01-29 22:05:30 +0100
commit397eb22166afa8cd273dbd0decdcb2ac7f2d34df (patch)
treecc95379243c40861ec1569df70519ca4bf493a0a /loose.go
parentpacked: Make packWriter implement Write directly instead of wrapping (diff)
signatureNo signature
obj, loose: Add Object.Serialize() interface
Diffstat (limited to 'loose.go')
-rw-r--r--loose.go19
1 files changed, 3 insertions, 16 deletions
diff --git a/loose.go b/loose.go
index 8f8d12a8..89779a93 100644
--- a/loose.go
+++ b/loose.go
@@ -173,23 +173,10 @@ func objTypeFromName(name string) (ObjectType, error) {
// WriteLooseObject writes an object to the repository as a loose object.
func (repo *Repository) WriteLooseObject(obj Object) (Hash, error) {
- var raw []byte
- var err error
-
- switch o := obj.(type) {
- case *Blob:
- raw, err = o.Serialize()
- case *Tree:
- raw, err = o.Serialize()
- case *Commit:
- raw, err = o.Serialize()
- case *Tag:
- raw, err = o.Serialize()
- default:
- return Hash{}, fmt.Errorf("furgit: unsupported object type for writing: %T", obj)
+ if obj == nil {
+ return Hash{}, ErrInvalidObject
}
- // TODO: Consider adding serialize to the interface?
-
+ raw, err := obj.Serialize()
if err != nil {
return Hash{}, err
}