From 98e5a64ce72e81dcede7dbebc74e22576a1f5ab8 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Fri, 20 Feb 2026 22:22:56 +0800 Subject: object: Use objectheader --- object/blob_serialize.go | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'object/blob_serialize.go') diff --git a/object/blob_serialize.go b/object/blob_serialize.go index b06242a0..d14ae56c 100644 --- a/object/blob_serialize.go +++ b/object/blob_serialize.go @@ -1,15 +1,27 @@ package object -import "codeberg.org/lindenii/furgit/objecttype" +import ( + "codeberg.org/lindenii/furgit/internal/objectheader" + "codeberg.org/lindenii/furgit/objecttype" +) -// Serialize renders the raw object (header + body). -func (blob *Blob) Serialize() ([]byte, error) { - header, err := headerForType(objecttype.TypeBlob, blob.Data) +// SerializeWithoutHeader renders the raw blob body bytes. +func (blob *Blob) SerializeWithoutHeader() ([]byte, error) { + return append([]byte(nil), blob.Data...), nil +} + +// SerializeWithHeader renders the raw object (header + body). +func (blob *Blob) SerializeWithHeader() ([]byte, error) { + body, err := blob.SerializeWithoutHeader() if err != nil { return nil, err } - raw := make([]byte, len(header)+len(blob.Data)) + header, ok := objectheader.Encode(objecttype.TypeBlob, int64(len(body))) + if !ok { + return nil, ErrInvalidObject + } + raw := make([]byte, len(header)+len(body)) copy(raw, header) - copy(raw[len(header):], blob.Data) + copy(raw[len(header):], body) return raw, nil } -- cgit v1.3.1-10-gc9f91