repository: expose AssociatedBlobSet via repository interface

This commit is contained in:
Michael Eischer
2025-11-26 20:59:08 +01:00
parent 0f05277b47
commit 07d090f233
2 changed files with 28 additions and 0 deletions
+16
View File
@@ -787,6 +787,22 @@ func (r *Repository) createIndexFromPacks(ctx context.Context, packsize map[rest
return invalid, nil
}
func (r *Repository) NewAssociatedBlobSet() restic.AssociatedBlobSet {
return &associatedBlobSet{*index.NewAssociatedSet[struct{}](r.idx)}
}
// associatedBlobSet is a wrapper around index.AssociatedSet to implement the restic.AssociatedBlobSet interface.
type associatedBlobSet struct {
index.AssociatedSet[struct{}]
}
func (s *associatedBlobSet) Intersect(other restic.AssociatedBlobSet) restic.AssociatedBlobSet {
return &associatedBlobSet{*s.AssociatedSet.Intersect(other)}
}
func (s *associatedBlobSet) Sub(other restic.AssociatedBlobSet) restic.AssociatedBlobSet {
return &associatedBlobSet{*s.AssociatedSet.Sub(other)}
}
// prepareCache initializes the local cache. indexIDs is the list of IDs of
// index files still present in the repo.
func (r *Repository) prepareCache() error {