diff options
Diffstat (limited to 'object/header/append.go')
| -rw-r--r-- | object/header/append.go | 23 |
1 files changed, 9 insertions, 14 deletions
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 } |
