ref: 0b2dcaabe23d45f6feb2273031854b14b512e3ff
dir: /format/packfile/ingest/thin_unresolved.go/
package ingest
import (
"bytes"
"slices"
objectid "codeberg.org/lindenii/furgit/object/id"
objecttype "codeberg.org/lindenii/furgit/object/type"
)
// unresolvedThinBaseIDs returns sorted unique unresolved ref base IDs.
func unresolvedThinBaseIDs(state *ingestState) []objectid.ObjectID {
seen := make(map[objectid.ObjectID]struct{})
for _, idx := range state.unresolvedRefDeltas {
record := state.records[idx]
if record.packedType != objecttype.TypeRefDelta {
continue
}
seen[record.baseObject] = struct{}{}
}
out := make([]objectid.ObjectID, 0, len(seen))
for id := range seen {
out = append(out, id)
}
slices.SortFunc(out, func(a, b objectid.ObjectID) int {
return bytes.Compare(a.RawBytes(), b.RawBytes())
})
return out
}