diff --git a/internal/xsync/slice.go b/internal/xsync/slice.go deleted file mode 100644 index d22ae23f1..000000000 --- a/internal/xsync/slice.go +++ /dev/null @@ -1,62 +0,0 @@ -package xsync - -import ( - "sync" -) - -type Slice[T any] struct { - m sync.RWMutex - s []T -} - -func (s *Slice[T]) Append(v T) { - s.m.Lock() - defer s.m.Unlock() - - s.s = append(s.s, v) -} - -func (s *Slice[T]) Size() int { - s.m.RLock() - defer s.m.RUnlock() - - return len(s.s) -} - -func (s *Slice[T]) Range(f func(idx int, v T) bool) { - s.m.RLock() - defer s.m.RUnlock() - - for idx, v := range s.s { - if !f(idx, v) { - break - } - } -} - -func (s *Slice[T]) Remove(idx int) bool { - s.m.Lock() - defer s.m.Unlock() - - if idx >= len(s.s) { - return false - } - - s.s = append(s.s[:idx], s.s[idx+1:]...) - - return true -} - -func (s *Slice[T]) Clear() (removed int) { - s.m.Lock() - defer s.m.Unlock() - - if s.s == nil { - return 0 - } - - l := len(s.s) - s.s = s.s[:0] - - return l -} diff --git a/internal/xsync/slice_test.go b/internal/xsync/slice_test.go deleted file mode 100644 index cc7ffdde1..000000000 --- a/internal/xsync/slice_test.go +++ /dev/null @@ -1,32 +0,0 @@ -package xsync - -import ( - "testing" - - "github.com/stretchr/testify/require" -) - -func TestSlice(t *testing.T) { - var s Slice[int] - require.Equal(t, 0, s.Size()) - require.Equal(t, 0, s.Clear()) - s.Append(1) - require.Equal(t, 1, s.Size()) - s.Range(func(idx int, v int) bool { - require.Equal(t, 0, idx) - require.Equal(t, 1, v) - - return true - }) - require.False(t, s.Remove(1)) - s.Append(2) - var rangeFuncCounter int - s.Range(func(idx int, v int) bool { - rangeFuncCounter++ - - return false - }) - require.Equal(t, 1, rangeFuncCounter) - require.True(t, s.Remove(1)) - require.Equal(t, 1, s.Clear()) -}