Dequeue returns the oldest value.
()
| 47 | |
| 48 | // Dequeue returns the oldest value. |
| 49 | func (r *Ring[T]) Dequeue() (v T, ok bool) { |
| 50 | if r.len == 0 { |
| 51 | return v, false |
| 52 | } |
| 53 | v, r.data[r.back] = r.data[r.back], v // retrieve and clear mem |
| 54 | r.len-- |
| 55 | r.back = (r.back + 1) % len(r.data) |
| 56 | return v, true |
| 57 | } |
| 58 | |
| 59 | // Enqueue adds an item to the ring. |
| 60 | func (r *Ring[T]) Enqueue(v T) { |
no outgoing calls