aboutsummaryrefslogtreecommitdiff
path: root/object/commit/serialize.go
diff options
context:
space:
mode:
Diffstat (limited to 'object/commit/serialize.go')
-rw-r--r--object/commit/serialize.go84
1 files changed, 0 insertions, 84 deletions
diff --git a/object/commit/serialize.go b/object/commit/serialize.go
deleted file mode 100644
index 3f141550..00000000
--- a/object/commit/serialize.go
+++ /dev/null
@@ -1,84 +0,0 @@
-package commit
-
-import (
- "bytes"
- "errors"
- "fmt"
-
- objectheader "codeberg.org/lindenii/furgit/object/header"
- objecttype "codeberg.org/lindenii/furgit/object/type"
-)
-
-// SerializeWithoutHeader renders the raw commit body bytes.
-func (commit *Commit) SerializeWithoutHeader() ([]byte, error) {
- var buf bytes.Buffer
-
- if commit.Tree.Algorithm().Size() == 0 {
- return nil, errors.New("object: commit: missing tree id")
- }
-
- fmt.Fprintf(&buf, "tree %s\n", commit.Tree.String())
-
- for _, parent := range commit.Parents {
- fmt.Fprintf(&buf, "parent %s\n", parent.String())
- }
-
- authorBytes, err := commit.Author.Serialize()
- if err != nil {
- return nil, err
- }
-
- buf.WriteString("author ")
- buf.Write(authorBytes)
- buf.WriteByte('\n')
-
- committerBytes, err := commit.Committer.Serialize()
- if err != nil {
- return nil, err
- }
-
- buf.WriteString("committer ")
- buf.Write(committerBytes)
- buf.WriteByte('\n')
-
- if commit.ChangeID != "" {
- buf.WriteString("change-id ")
- buf.WriteString(commit.ChangeID)
- buf.WriteByte('\n')
- }
-
- for _, h := range commit.ExtraHeaders {
- if h.Key == "" {
- return nil, errors.New("object: commit: extra header has empty key")
- }
-
- buf.WriteString(h.Key)
- buf.WriteByte(' ')
- buf.Write(h.Value)
- buf.WriteByte('\n')
- }
-
- buf.WriteByte('\n')
- buf.Write(commit.Message)
-
- return buf.Bytes(), nil
-}
-
-// SerializeWithHeader renders the raw object (header + body).
-func (commit *Commit) SerializeWithHeader() ([]byte, error) {
- body, err := commit.SerializeWithoutHeader()
- if err != nil {
- return nil, err
- }
-
- header, ok := objectheader.Encode(objecttype.TypeCommit, int64(len(body)))
- if !ok {
- return nil, errors.New("object: commit: failed to encode object header")
- }
-
- raw := make([]byte, len(header)+len(body))
- copy(raw, header)
- copy(raw[len(header):], body)
-
- return raw, nil
-}