From 62d363f044dbcd5dbdf447a0f3ce4c12b8ab30e4 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Sat, 16 May 2026 08:29:46 +0000 Subject: object/header: Refactor --- object/header/append.go | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) (limited to 'object/header/append.go') diff --git a/object/header/append.go b/object/header/append.go index d1e98672..d79016a0 100644 --- a/object/header/append.go +++ b/object/header/append.go @@ -1,25 +1,20 @@ package header import ( + "slices" "strconv" "codeberg.org/lindenii/furgit/object/typ" ) // AppendHeader appends a canonical loose-object header ("type size\x00") to dst. -func AppendHeader(dst []byte, ty typ.Type, size uint64) ([]byte, bool) { - tyName, ok := ty.Name() - if !ok { - return nil, false - } +func AppendHeader(dst []byte, ty typ.Type, size uint64) ([]byte) { + tyName := ty.Name() - sizeStr := strconv.FormatInt(size, 10) - out := make([]byte, 0, len(dst)+len(tyName)+len(sizeStr)+2) - out = append(out, dst...) - out = append(out, tyName...) - out = append(out, ' ') - out = append(out, sizeStr...) - out = append(out, 0) - - return out, true + dst = slices.Grow(dst, len(tyName)+1+19+1) + dst = append(dst, tyName...) + dst = append(dst, ' ') + dst = strconv.AppendUint(dst, size, 10) + dst = append(dst, 0) + return dst } -- cgit v1.3.1-10-gc9f91