diff --git a/backend/id_set.go b/backend/id_set.go deleted file mode 100644 index 253147605..000000000 --- a/backend/id_set.go +++ /dev/null @@ -1,75 +0,0 @@ -package backend - -import ( - "errors" - "sort" - "sync" -) - -type IDSet struct { - list IDs - m sync.Mutex -} - -func NewIDSet() *IDSet { - return &IDSet{ - list: make(IDs, 0), - } -} - -func (s *IDSet) find(id ID) (int, error) { - pos := sort.Search(len(s.list), func(i int) bool { - return id.Compare(s.list[i]) >= 0 - }) - - if pos < len(s.list) { - candID := s.list[pos] - if id.Compare(candID) == 0 { - return pos, nil - } - } - - return pos, errors.New("ID not found") -} - -func (s *IDSet) insert(id ID) { - pos, err := s.find(id) - if err == nil { - // already present - return - } - - // insert blob - // https://code.google.com/p/go-wiki/wiki/SliceTricks - s.list = append(s.list, ID{}) - copy(s.list[pos+1:], s.list[pos:]) - s.list[pos] = id - - return -} - -func (s *IDSet) Insert(id ID) { - s.m.Lock() - defer s.m.Unlock() - - s.insert(id) -} - -func (s *IDSet) Find(id ID) error { - s.m.Lock() - defer s.m.Unlock() - - _, err := s.find(id) - if err != nil { - return err - } - - return nil -} - -func (s *IDSet) Len() int { - s.m.Lock() - defer s.m.Unlock() - - return len(s.list) -} diff --git a/backend/id_set_test.go b/backend/id_set_test.go deleted file mode 100644 index 4b8139a36..000000000 --- a/backend/id_set_test.go +++ /dev/null @@ -1,41 +0,0 @@ -package backend_test - -import ( - "crypto/rand" - "io" - "testing" - - "github.com/restic/restic/backend" - . "github.com/restic/restic/test" -) - -func randomID() []byte { - buf := make([]byte, backend.IDSize) - _, err := io.ReadFull(rand.Reader, buf) - if err != nil { - panic(err) - } - return buf -} - -func TestSet(t *testing.T) { - s := backend.NewIDSet() - - testID := randomID() - err := s.Find(testID) - Assert(t, err != nil, "found test ID in IDSet before insertion") - - for i := 0; i < 238; i++ { - s.Insert(randomID()) - } - - s.Insert(testID) - OK(t, s.Find(testID)) - - for i := 0; i < 80; i++ { - s.Insert(randomID()) - } - - s.Insert(testID) - OK(t, s.Find(testID)) -}