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