diff options
| author | 2026-01-29 22:05:30 +0100 | |
|---|---|---|
| committer | 2026-01-29 22:05:30 +0100 | |
| commit | 397eb22166afa8cd273dbd0decdcb2ac7f2d34df (patch) | |
| tree | cc95379243c40861ec1569df70519ca4bf493a0a /loose.go | |
| parent | packed: Make packWriter implement Write directly instead of wrapping (diff) | |
| signature | No signature | |
obj, loose: Add Object.Serialize() interface
Diffstat (limited to 'loose.go')
| -rw-r--r-- | loose.go | 19 |
1 files changed, 3 insertions, 16 deletions
@@ -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 } |
