Fast implementation of Git in pure Go
at master 29 lines 603 B view raw
1package objectheader 2 3import ( 4 "strconv" 5 6 "codeberg.org/lindenii/furgit/objecttype" 7) 8 9// Append appends a canonical loose-object header ("type size\\x00") to dst. 10func Append(dst []byte, ty objecttype.Type, size int64) ([]byte, bool) { 11 if size < 0 { 12 return nil, false 13 } 14 15 tyName, ok := objecttype.Name(ty) 16 if !ok { 17 return nil, false 18 } 19 20 sizeStr := strconv.FormatInt(size, 10) 21 out := make([]byte, 0, len(dst)+len(tyName)+len(sizeStr)+2) 22 out = append(out, dst...) 23 out = append(out, tyName...) 24 out = append(out, ' ') 25 out = append(out, sizeStr...) 26 out = append(out, 0) 27 28 return out, true 29}