aboutsummaryrefslogtreecommitdiff
path: root/format
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-03-29 11:05:46 +0000
committerGravatar Runxi Yu2026-03-29 11:05:46 +0000
commit0109f0903d8e18d110d6b9456f9a1fb4501e62fc (patch)
treef1b95c7c64d79fa0dab0251661600a299d8aefcb /format
parentobject{,/type}: Fix up API shape (diff)
signatureNo signature
object/type, format/packfile: API cleanups
Diffstat (limited to 'format')
-rw-r--r--format/packfile/header.go4
-rw-r--r--format/packfile/ingest/drain.go3
-rw-r--r--format/packfile/ingest/entry.go3
-rw-r--r--format/packfile/ingest/header.go2
-rw-r--r--format/packfile/ingest/record_content.go3
-rw-r--r--format/packfile/ingest/record_resolve.go3
-rw-r--r--format/packfile/object_type.go16
7 files changed, 7 insertions, 27 deletions
diff --git a/format/packfile/header.go b/format/packfile/header.go
index bc859a55..5f4e4508 100644
--- a/format/packfile/header.go
+++ b/format/packfile/header.go
@@ -3,7 +3,7 @@ package packfile
// Signature is the 4-byte "PACK" magic at the start of pack files.
const Signature = 0x5041434b
-// VersionSupported reports whether one pack version is supported.
-func VersionSupported(version uint32) bool {
+// SupportedVersion reports whether one pack version is supported.
+func SupportedVersion(version uint32) bool {
return version == 2 || version == 3
}
diff --git a/format/packfile/ingest/drain.go b/format/packfile/ingest/drain.go
index aa96db8a..7179a823 100644
--- a/format/packfile/ingest/drain.go
+++ b/format/packfile/ingest/drain.go
@@ -4,7 +4,6 @@ import (
"fmt"
"io"
- packfmt "codeberg.org/lindenii/furgit/format/packfile"
"codeberg.org/lindenii/furgit/internal/compress/zlib"
objectheader "codeberg.org/lindenii/furgit/object/header"
objectid "codeberg.org/lindenii/furgit/object/id"
@@ -25,7 +24,7 @@ func drainEntryPayload(state *ingestState, record objectRecord) (int64, objectid
var total int64
- if packfmt.IsBaseObjectType(record.packedType) {
+ if record.packedType.IsBaseObject() {
header, ok := objectheader.Encode(record.packedType, record.declaredSize)
if !ok {
return 0, zero, &MalformedPackEntryError{Offset: record.offset, Reason: "encode object header"}
diff --git a/format/packfile/ingest/entry.go b/format/packfile/ingest/entry.go
index 50fbe728..363e213c 100644
--- a/format/packfile/ingest/entry.go
+++ b/format/packfile/ingest/entry.go
@@ -3,7 +3,6 @@ package ingest
import (
"fmt"
- packfmt "codeberg.org/lindenii/furgit/format/packfile"
objecttype "codeberg.org/lindenii/furgit/object/type"
)
@@ -54,7 +53,7 @@ func scanOneEntry(state *ingestState, startOffset uint64) (uint64, error) {
record.crc32 = crc
- if packfmt.IsBaseObjectType(record.packedType) {
+ if record.packedType.IsBaseObject() {
record.objectID = oid
record.realType = record.packedType
record.resolved = true
diff --git a/format/packfile/ingest/header.go b/format/packfile/ingest/header.go
index 6a214828..5fae4c41 100644
--- a/format/packfile/ingest/header.go
+++ b/format/packfile/ingest/header.go
@@ -36,7 +36,7 @@ func parseAndValidatePackHeader(hdr [packHeaderSize]byte) (HeaderInfo, error) {
}
version := binary.BigEndian.Uint32(hdr[4:8])
- if !packfile.VersionSupported(version) {
+ if !packfile.SupportedVersion(version) {
return HeaderInfo{}, &InvalidPackHeaderError{
Reason: fmt.Sprintf("unsupported version %d", version),
}
diff --git a/format/packfile/ingest/record_content.go b/format/packfile/ingest/record_content.go
index 4f8787ea..c66a1234 100644
--- a/format/packfile/ingest/record_content.go
+++ b/format/packfile/ingest/record_content.go
@@ -3,14 +3,13 @@ package ingest
import (
"fmt"
- packfmt "codeberg.org/lindenii/furgit/format/packfile"
objecttype "codeberg.org/lindenii/furgit/object/type"
)
// readBaseRecordContent reads canonical base content for one non-delta record.
func readBaseRecordContent(state *ingestState, idx int) (objecttype.Type, []byte, error) {
record := state.records[idx]
- if !packfmt.IsBaseObjectType(record.packedType) {
+ if !record.packedType.IsBaseObject() {
return objecttype.TypeInvalid, nil, fmt.Errorf("packfile/ingest: record %d is not a base object", idx)
}
diff --git a/format/packfile/ingest/record_resolve.go b/format/packfile/ingest/record_resolve.go
index fc5b9dca..7a9471dc 100644
--- a/format/packfile/ingest/record_resolve.go
+++ b/format/packfile/ingest/record_resolve.go
@@ -3,7 +3,6 @@ package ingest
import (
"fmt"
- packfmt "codeberg.org/lindenii/furgit/format/packfile"
objecttype "codeberg.org/lindenii/furgit/object/type"
)
@@ -25,7 +24,7 @@ func resolveRecord(state *ingestState, idx int, visiting map[int]struct{}) (obje
return ty, content, nil
}
- if packfmt.IsBaseObjectType(record.packedType) {
+ if record.packedType.IsBaseObject() {
ty, content, err := readBaseRecordContent(state, idx)
if err != nil {
return objecttype.TypeInvalid, nil, err
diff --git a/format/packfile/object_type.go b/format/packfile/object_type.go
deleted file mode 100644
index 8382baa9..00000000
--- a/format/packfile/object_type.go
+++ /dev/null
@@ -1,16 +0,0 @@
-package packfile
-
-import objecttype "codeberg.org/lindenii/furgit/object/type"
-
-// IsBaseObjectType reports whether ty is one of the four canonical object
-// types encoded directly in pack entries.
-func IsBaseObjectType(ty objecttype.Type) bool {
- switch ty {
- case objecttype.TypeCommit, objecttype.TypeTree, objecttype.TypeBlob, objecttype.TypeTag:
- return true
- case objecttype.TypeInvalid, objecttype.TypeFuture, objecttype.TypeOfsDelta, objecttype.TypeRefDelta:
- return false
- default:
- return false
- }
-}