aboutsummaryrefslogtreecommitdiff
path: root/object/header/append.go
blob: fa9893c2d0587b7cb7f6d9550eeab2963b495c8a (about) (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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 {
	tyName := ty.Name()

	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
}