aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Runxi Yu2025-11-17 00:00:00 +0000
committerGravatar Runxi Yu2025-11-17 00:00:00 +0000
commitb277881419bff462c2c819e0a04e17d03c3032ff (patch)
tree4e14cd5ac3b5ff823f5b1aef2d02ecd4fa253cc7
parentAdd a little bit more of documentation (diff)
signature
Make the internal serialize function a method instead
-rw-r--r--obj_commit.go14
-rw-r--r--obj_tag.go20
-rw-r--r--obj_tree.go8
3 files changed, 21 insertions, 21 deletions
diff --git a/obj_commit.go b/obj_commit.go
index 524ef7bd..c3763073 100644
--- a/obj_commit.go
+++ b/obj_commit.go
@@ -112,28 +112,28 @@ func parseCommit(id Hash, body []byte, repo *Repository) (*StoredCommit, error)
return c, nil
}
-func commitBody(c *Commit) ([]byte, error) {
+func (commit *Commit) serialize() ([]byte, error) {
var buf bytes.Buffer
- fmt.Fprintf(&buf, "tree %s\n", c.Tree.String())
- for _, p := range c.Parents {
+ fmt.Fprintf(&buf, "tree %s\n", commit.Tree.String())
+ for _, p := range commit.Parents {
fmt.Fprintf(&buf, "parent %s\n", p.String())
}
buf.WriteString("author ")
- ab, err := c.Author.Serialize()
+ ab, err := commit.Author.Serialize()
if err != nil {
return nil, err
}
buf.Write(ab)
buf.WriteByte('\n')
buf.WriteString("committer ")
- cb, err := c.Committer.Serialize()
+ cb, err := commit.Committer.Serialize()
if err != nil {
return nil, err
}
buf.Write(cb)
buf.WriteByte('\n')
buf.WriteByte('\n')
- buf.Write(c.Message)
+ buf.Write(commit.Message)
return buf.Bytes(), nil
}
@@ -141,7 +141,7 @@ func commitBody(c *Commit) ([]byte, error) {
// Serialize renders the commit into its raw byte representation,
// including the header (i.e., "type size\0").
func (commit *Commit) Serialize() ([]byte, error) {
- body, err := commitBody(commit)
+ body, err := commit.serialize()
if err != nil {
return nil, err
}
diff --git a/obj_tag.go b/obj_tag.go
index 7279d5c0..b4502993 100644
--- a/obj_tag.go
+++ b/obj_tag.go
@@ -114,11 +114,11 @@ func parseTag(id Hash, body []byte, repo *Repository) (*StoredTag, error) {
return t, nil
}
-func tagBody(t *Tag) ([]byte, error) {
+func (tag *Tag) serialize() ([]byte, error) {
var buf bytes.Buffer
- fmt.Fprintf(&buf, "object %s\n", t.Target.String())
+ fmt.Fprintf(&buf, "object %s\n", tag.Target.String())
buf.WriteString("type ")
- switch t.TargetType {
+ switch tag.TargetType {
case ObjectTypeCommit:
buf.WriteString("commit")
case ObjectTypeTree:
@@ -128,17 +128,17 @@ func tagBody(t *Tag) ([]byte, error) {
case ObjectTypeTag:
buf.WriteString("tag")
case ObjectTypeInvalid, ObjectTypeFuture, ObjectTypeOfsDelta, ObjectTypeRefDelta:
- return nil, fmt.Errorf("furgit: tag: invalid target type %d", t.TargetType)
+ return nil, fmt.Errorf("furgit: tag: invalid target type %d", tag.TargetType)
default:
- return nil, fmt.Errorf("furgit: tag: invalid target type %d", t.TargetType)
+ return nil, fmt.Errorf("furgit: tag: invalid target type %d", tag.TargetType)
}
buf.WriteByte('\n')
buf.WriteString("tag ")
- buf.Write(t.Name)
+ buf.Write(tag.Name)
buf.WriteByte('\n')
- if t.Tagger != nil {
+ if tag.Tagger != nil {
buf.WriteString("tagger ")
- tb, err := t.Tagger.Serialize()
+ tb, err := tag.Tagger.Serialize()
if err != nil {
return nil, err
}
@@ -146,7 +146,7 @@ func tagBody(t *Tag) ([]byte, error) {
buf.WriteByte('\n')
}
buf.WriteByte('\n')
- buf.Write(t.Message)
+ buf.Write(tag.Message)
return buf.Bytes(), nil
}
@@ -154,7 +154,7 @@ func tagBody(t *Tag) ([]byte, error) {
// Serialize renders the tag into its raw byte representation,
// including the header (i.e., "type size\0").
func (tag *Tag) Serialize() ([]byte, error) {
- body, err := tagBody(tag)
+ body, err := tag.serialize()
if err != nil {
return nil, err
}
diff --git a/obj_tree.go b/obj_tree.go
index 689b3690..75634a87 100644
--- a/obj_tree.go
+++ b/obj_tree.go
@@ -108,16 +108,16 @@ func parseTree(id Hash, body []byte, repo *Repository) (*StoredTree, error) {
}
// treeBody builds the entry list for a tree without the Git header.
-func treeBody(t *Tree) []byte {
+func (tree *Tree) serialize() []byte {
var bodyLen int
- for _, e := range t.Entries {
+ for _, e := range tree.Entries {
mode := strconv.FormatUint(uint64(e.Mode), 8)
bodyLen += len(mode) + 1 + len(e.Name) + 1 + e.ID.size
}
body := make([]byte, bodyLen)
pos := 0
- for _, e := range t.Entries {
+ for _, e := range tree.Entries {
mode := strconv.FormatUint(uint64(e.Mode), 8)
pos += copy(body[pos:], []byte(mode))
body[pos] = ' '
@@ -134,7 +134,7 @@ func treeBody(t *Tree) []byte {
// Serialize renders the tree into its raw byte representation,
// including the header (i.e., "type size\0").
func (tree *Tree) Serialize() ([]byte, error) {
- body := treeBody(tree)
+ body := tree.serialize()
header, err := headerForType(ObjectTypeTree, body)
if err != nil {
return nil, err