aboutsummaryrefslogtreecommitdiff
path: root/format/commitgraph/bloom/settings.go
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-04-02 06:23:30 +0000
committerGravatar Runxi Yu2026-04-02 06:28:39 +0000
commita041d523de389b65b98a5373a8034041db2a8d83 (patch)
tree7b423dc735f463be616045f2c3c2095a7737aca7 /format/commitgraph/bloom/settings.go
parentresearch: Add dynamic pack resources (diff)
signatureNo signature
*: Remove
Diffstat (limited to 'format/commitgraph/bloom/settings.go')
-rw-r--r--format/commitgraph/bloom/settings.go50
1 files changed, 0 insertions, 50 deletions
diff --git a/format/commitgraph/bloom/settings.go b/format/commitgraph/bloom/settings.go
deleted file mode 100644
index 764653bd..00000000
--- a/format/commitgraph/bloom/settings.go
+++ /dev/null
@@ -1,50 +0,0 @@
-package bloom
-
-import (
- "encoding/binary"
-
- "codeberg.org/lindenii/furgit/internal/intconv"
-)
-
-// Settings describe the changed-paths Bloom filter parameters stored in
-// commit-graph BDAT chunks.
-//
-// Obviously, they must match the repository's commit-graph settings to
-// interpret filters correctly.
-type Settings struct {
- HashVersion uint32
- NumHashes uint32
- BitsPerEntry uint32
- MaxChangePaths uint32
-}
-
-// ParseSettings reads Bloom filter settings from a BDAT chunk header.
-func ParseSettings(bdat []byte) (*Settings, error) {
- if len(bdat) < DataHeaderSize {
- return nil, ErrInvalid
- }
-
- settings := &Settings{
- HashVersion: binary.BigEndian.Uint32(bdat[0:4]),
- NumHashes: binary.BigEndian.Uint32(bdat[4:8]),
- BitsPerEntry: binary.BigEndian.Uint32(bdat[8:12]),
- MaxChangePaths: DefaultMaxChange,
- }
-
- switch settings.HashVersion {
- case 1, 2:
- default:
- return nil, ErrInvalid
- }
-
- if settings.NumHashes == 0 {
- return nil, ErrInvalid
- }
-
- _, err := intconv.Uint32ToInt(settings.NumHashes)
- if err != nil {
- return nil, ErrInvalid
- }
-
- return settings, nil
-}