aboutsummaryrefslogtreecommitdiff
path: root/object/tree/serialize.go
diff options
context:
space:
mode:
Diffstat (limited to 'object/tree/serialize.go')
-rw-r--r--object/tree/serialize.go55
1 files changed, 0 insertions, 55 deletions
diff --git a/object/tree/serialize.go b/object/tree/serialize.go
deleted file mode 100644
index 69deacda..00000000
--- a/object/tree/serialize.go
+++ /dev/null
@@ -1,55 +0,0 @@
-package tree
-
-import (
- "errors"
- "strconv"
-
- objectheader "codeberg.org/lindenii/furgit/object/header"
- objecttype "codeberg.org/lindenii/furgit/object/type"
-)
-
-// SerializeWithoutHeader renders the raw tree body bytes.
-func (tree *Tree) SerializeWithoutHeader() ([]byte, error) {
- var bodyLen int
-
- for _, entry := range tree.Entries {
- mode := strconv.FormatUint(uint64(entry.Mode), 8)
- bodyLen += len(mode) + 1 + len(entry.Name) + 1 + entry.ID.Algorithm().Size()
- }
-
- body := make([]byte, bodyLen)
- pos := 0
-
- for _, entry := range tree.Entries {
- mode := strconv.FormatUint(uint64(entry.Mode), 8)
- pos += copy(body[pos:], mode)
- body[pos] = ' '
- pos++
- pos += copy(body[pos:], entry.Name)
- body[pos] = 0
- pos++
- id := entry.ID.Bytes()
- pos += copy(body[pos:], id)
- }
-
- return body, nil
-}
-
-// SerializeWithHeader renders the raw object (header + body).
-func (tree *Tree) SerializeWithHeader() ([]byte, error) {
- body, err := tree.SerializeWithoutHeader()
- if err != nil {
- return nil, err
- }
-
- header, ok := objectheader.Encode(objecttype.TypeTree, int64(len(body)))
- if !ok {
- return nil, errors.New("object: tree: failed to encode object header")
- }
-
- raw := make([]byte, len(header)+len(body))
- copy(raw, header)
- copy(raw[len(header):], body)
-
- return raw, nil
-}