diff options
| author | 2026-04-02 06:23:30 +0000 | |
|---|---|---|
| committer | 2026-04-02 06:28:39 +0000 | |
| commit | a041d523de389b65b98a5373a8034041db2a8d83 (patch) | |
| tree | 7b423dc735f463be616045f2c3c2095a7737aca7 /object/tree/entry.go | |
| parent | research: Add dynamic pack resources (diff) | |
| signature | No signature | |
*: Remove
Diffstat (limited to 'object/tree/entry.go')
| -rw-r--r-- | object/tree/entry.go | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/object/tree/entry.go b/object/tree/entry.go deleted file mode 100644 index b3089b74..00000000 --- a/object/tree/entry.go +++ /dev/null @@ -1,57 +0,0 @@ -package tree - -import ( - "bytes" - "slices" - - objectid "codeberg.org/lindenii/furgit/object/id" -) - -// TreeEntry represents a single entry in a tree. -type TreeEntry struct { - Mode FileMode - // Name is part of the tree ordering. Mutating it after insertion may break - // Tree ordering and lookup behavior. - Name []byte - ID objectid.ObjectID -} - -func (tree *Tree) entry(name []byte, searchIsTree bool) *TreeEntry { - index, ok := slices.BinarySearchFunc(tree.Entries, name, func(entry TreeEntry, name []byte) int { - return TreeEntryNameCompare(entry.Name, entry.Mode, name, searchIsTree) - }) - if !ok { - return nil - } - - entry := &tree.Entries[index] - if !bytes.Equal(entry.Name, name) { - return nil - } - - return entry -} - -func (tree *Tree) entryIndex(name []byte) (int, bool) { - index, ok := tree.entryIndexWithMode(name, true) - if ok { - return index, true - } - - return tree.entryIndexWithMode(name, false) -} - -func (tree *Tree) entryIndexWithMode(name []byte, searchIsTree bool) (int, bool) { - index, ok := slices.BinarySearchFunc(tree.Entries, name, func(entry TreeEntry, name []byte) int { - return TreeEntryNameCompare(entry.Name, entry.Mode, name, searchIsTree) - }) - if !ok { - return 0, false - } - - if !bytes.Equal(tree.Entries[index].Name, name) { - return 0, false - } - - return index, true -} |
