aboutsummaryrefslogtreecommitdiff
path: root/object/header/append.go
blob: ede08315678c2e9a06d0b853d31490eaf6485f83 (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"
)

// Append appends a canonical loose-object header ("type size\x00") to dst.
func Append(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
}