aboutsummaryrefslogtreecommitdiff
path: root/object/parse.go
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-03-29 09:49:21 +0000
committerGravatar Runxi Yu2026-03-29 09:49:21 +0000
commitec658d86dda3ac0e9b63635a4144c432223b9fc8 (patch)
tree8e97122edc90ed45e73de3e192addd8deadc79b1 /object/parse.go
parentobject/stored: Split files and document properly (diff)
signatureNo signature
object: Split files
Diffstat (limited to 'object/parse.go')
-rw-r--r--object/parse.go50
1 files changed, 0 insertions, 50 deletions
diff --git a/object/parse.go b/object/parse.go
deleted file mode 100644
index 7cc01a7a..00000000
--- a/object/parse.go
+++ /dev/null
@@ -1,50 +0,0 @@
-package object
-
-import (
- "fmt"
-
- "codeberg.org/lindenii/furgit/object/blob"
- "codeberg.org/lindenii/furgit/object/commit"
- objectheader "codeberg.org/lindenii/furgit/object/header"
- objectid "codeberg.org/lindenii/furgit/object/id"
- "codeberg.org/lindenii/furgit/object/tag"
- "codeberg.org/lindenii/furgit/object/tree"
- objecttype "codeberg.org/lindenii/furgit/object/type"
-)
-
-// ParseObjectWithHeader parses a loose object in "type size\x00body" format.
-//
-//nolint:ireturn
-func ParseObjectWithHeader(raw []byte, algo objectid.Algorithm) (Object, error) {
- ty, size, headerLen, ok := objectheader.Parse(raw)
- if !ok {
- return nil, fmt.Errorf("object: malformed object header")
- }
-
- body := raw[headerLen:]
- if int64(len(body)) != size {
- return nil, fmt.Errorf("object: size mismatch: header says %d bytes, body has %d", size, len(body))
- }
-
- return ParseObjectWithoutHeader(ty, body, algo)
-}
-
-// ParseObjectWithoutHeader parses a typed object body.
-//
-//nolint:ireturn
-func ParseObjectWithoutHeader(ty objecttype.Type, body []byte, algo objectid.Algorithm) (Object, error) {
- switch ty {
- case objecttype.TypeBlob:
- return blob.Parse(body)
- case objecttype.TypeTree:
- return tree.Parse(body, algo)
- case objecttype.TypeCommit:
- return commit.Parse(body, algo)
- case objecttype.TypeTag:
- return tag.Parse(body, algo)
- case objecttype.TypeInvalid, objecttype.TypeFuture, objecttype.TypeOfsDelta, objecttype.TypeRefDelta:
- return nil, fmt.Errorf("object: unsupported object type %d", ty)
- default:
- return nil, fmt.Errorf("object: unsupported object type %d", ty)
- }
-}