aboutsummaryrefslogtreecommitdiff
path: root/object/tag_serialize.go
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-02-20 22:22:56 +0800
committerGravatar Runxi Yu2026-02-20 22:27:13 +0800
commit98e5a64ce72e81dcede7dbebc74e22576a1f5ab8 (patch)
tree0354081e3949292c202f8b481b584436da3f7452 /object/tag_serialize.go
parentobjectheader: Add loose-object header parsing and emitting code (diff)
signatureNo signature
object: Use objectheader
Diffstat (limited to 'object/tag_serialize.go')
-rw-r--r--object/tag_serialize.go16
1 files changed, 9 insertions, 7 deletions
diff --git a/object/tag_serialize.go b/object/tag_serialize.go
index bbc229c1..f9d754cf 100644
--- a/object/tag_serialize.go
+++ b/object/tag_serialize.go
@@ -4,10 +4,12 @@ import (
"bytes"
"fmt"
+ "codeberg.org/lindenii/furgit/internal/objectheader"
"codeberg.org/lindenii/furgit/objecttype"
)
-func (tag *Tag) serialize() ([]byte, error) {
+// SerializeWithoutHeader renders the raw tag body bytes.
+func (tag *Tag) SerializeWithoutHeader() ([]byte, error) {
if tag.Target.Size() == 0 {
return nil, ErrInvalidObject
}
@@ -42,15 +44,15 @@ func (tag *Tag) serialize() ([]byte, error) {
return buf.Bytes(), nil
}
-// Serialize renders the raw object (header + body).
-func (tag *Tag) Serialize() ([]byte, error) {
- body, err := tag.serialize()
+// SerializeWithHeader renders the raw object (header + body).
+func (tag *Tag) SerializeWithHeader() ([]byte, error) {
+ body, err := tag.SerializeWithoutHeader()
if err != nil {
return nil, err
}
- header, err := headerForType(objecttype.TypeTag, body)
- if err != nil {
- return nil, err
+ header, ok := objectheader.Encode(objecttype.TypeTag, int64(len(body)))
+ if !ok {
+ return nil, ErrInvalidObject
}
raw := make([]byte, len(header)+len(body))
copy(raw, header)