on main help sign in
fix: unused slice methods
cdb311dCarlos Alexandro Becker
internal/csync/slices.go−16
@@ -112,15 +112,6 @@ func (s *Slice[T]) Len() int {
112 return len(s.inner)
112 return len(s.inner)
113}
113}
114
114
115−// Slice returns a copy of the underlying slice.
116−func (s *Slice[T]) Slice() []T {
117− s.mu.RLock()
118− defer s.mu.RUnlock()
119− result := make([]T, len(s.inner))
120− copy(result, s.inner)
121− return result
122−}
123−
124// SetSlice replaces the entire slice with a new one.
115// SetSlice replaces the entire slice with a new one.
125func (s *Slice[T]) SetSlice(items []T) {
116func (s *Slice[T]) SetSlice(items []T) {
126 s.mu.Lock()
117 s.mu.Lock()
@@ -129,13 +120,6 @@ func (s *Slice[T]) SetSlice(items []T) {
129 copy(s.inner, items)
120 copy(s.inner, items)
130}
121}
131
122
132−// Clear removes all elements from the slice.
133−func (s *Slice[T]) Clear() {
134− s.mu.Lock()
135− defer s.mu.Unlock()
136− s.inner = s.inner[:0]
137−}
138−
139// Seq returns an iterator that yields elements from the slice.
123// Seq returns an iterator that yields elements from the slice.
140func (s *Slice[T]) Seq() iter.Seq[T] {
124func (s *Slice[T]) Seq() iter.Seq[T] {
141 return func(yield func(T) bool) {
125 return func(yield func(T) bool) {
internal/csync/slices_test.go+6−13
@@ -1,6 +1,7 @@
1package csync
1package csync
2
2
3import (
3import (
4+ "slices"
4 "sync"
5 "sync"
5 "sync/atomic"
6 "sync/atomic"
6 "testing"
7 "testing"
@@ -145,7 +146,7 @@ func TestSlice(t *testing.T) {
145 assert.Equal(t, 4, s.Len())
146 assert.Equal(t, 4, s.Len())
146
147
147 expected := []int{1, 2, 4, 5}
148 expected := []int{1, 2, 4, 5}
148− actual := s.Slice()
149+ actual := slices.Collect(s.Seq())
149 assert.Equal(t, expected, actual)
150 assert.Equal(t, expected, actual)
150
151
151 // Delete out of bounds
152 // Delete out of bounds
@@ -203,7 +204,7 @@ func TestSlice(t *testing.T) {
203 s.SetSlice(newItems)
204 s.SetSlice(newItems)
204
205
205 assert.Equal(t, 3, s.Len())
206 assert.Equal(t, 3, s.Len())
206− assert.Equal(t, newItems, s.Slice())
207+ assert.Equal(t, newItems, slices.Collect(s.Seq()))
207
208
208 // Verify it's a copy
209 // Verify it's a copy
209 newItems[0] = 999
210 newItems[0] = 999
@@ -212,23 +213,15 @@ func TestSlice(t *testing.T) {
212 assert.Equal(t, 10, val)
213 assert.Equal(t, 10, val)
213 })
214 })
214
215
215− t.Run("Clear", func(t *testing.T) {
216− s := NewSliceFrom([]int{1, 2, 3})
217− assert.Equal(t, 3, s.Len())
218−
219− s.Clear()
220− assert.Equal(t, 0, s.Len())
221− })
222−
223 t.Run("Slice", func(t *testing.T) {
216 t.Run("Slice", func(t *testing.T) {
224 original := []int{1, 2, 3}
217 original := []int{1, 2, 3}
225 s := NewSliceFrom(original)
218 s := NewSliceFrom(original)
226
219
227− copy := s.Slice()
220+ copied := slices.Collect(s.Seq())
228− assert.Equal(t, original, copy)
221+ assert.Equal(t, original, copied)
229
222
230 // Verify it's a copy
223 // Verify it's a copy
231− copy[0] = 999
224+ copied[0] = 999
232 val, ok := s.Get(0)
225 val, ok := s.Get(0)
233 require.True(t, ok)
226 require.True(t, ok)
234 assert.Equal(t, 1, val)
227 assert.Equal(t, 1, val)