diff options
| author | 2026-03-26 09:17:14 +0000 | |
|---|---|---|
| committer | 2026-03-26 09:18:30 +0000 | |
| commit | 3e884f5f3d42cbc4874a04da31dde10314b0cfad (patch) | |
| tree | f5e1e325fd1a2a0801791c054010213214475d80 /commitgraph/bloom/settings.go | |
| parent | network/receivepack: Rename from receivepack (diff) | |
| signature | No signature | |
format: Move commitgraph and packfile here
Diffstat (limited to 'commitgraph/bloom/settings.go')
| -rw-r--r-- | commitgraph/bloom/settings.go | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/commitgraph/bloom/settings.go b/commitgraph/bloom/settings.go deleted file mode 100644 index 764653bd..00000000 --- a/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 -} |
