Enqueue adds an item to the ring.
(v T)
| 58 | |
| 59 | // Enqueue adds an item to the ring. |
| 60 | func (r *Ring[T]) Enqueue(v T) { |
| 61 | if r.len == len(r.data) { |
| 62 | r.grow() |
| 63 | } |
| 64 | writePos := (r.back + r.len) % len(r.data) |
| 65 | r.data[writePos] = v |
| 66 | r.len++ |
| 67 | } |
| 68 | |
| 69 | func (r *Ring[T]) grow() { |
| 70 | s := make([]T, len(r.data)+r.chunkSize) |