aboutsummaryrefslogtreecommitdiff
path: root/object/header/append.go
diff options
context:
space:
mode:
Diffstat (limited to 'object/header/append.go')
-rw-r--r--object/header/append.go23
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
}