diff options
Diffstat (limited to 'vendor/github.com/jackc/puddle/v2/internal/genstack/stack.go')
-rw-r--r-- | vendor/github.com/jackc/puddle/v2/internal/genstack/stack.go | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/vendor/github.com/jackc/puddle/v2/internal/genstack/stack.go b/vendor/github.com/jackc/puddle/v2/internal/genstack/stack.go deleted file mode 100644 index dbced0c72..000000000 --- a/vendor/github.com/jackc/puddle/v2/internal/genstack/stack.go +++ /dev/null @@ -1,39 +0,0 @@ -package genstack - -// stack is a wrapper around an array implementing a stack. -// -// We cannot use slice to represent the stack because append might change the -// pointer value of the slice. That would be an issue in GenStack -// implementation. -type stack[T any] struct { - arr []T -} - -// push pushes a new element at the top of a stack. -func (s *stack[T]) push(vs ...T) { s.arr = append(s.arr, vs...) } - -// pop pops the stack top-most element. -// -// If stack length is zero, this method panics. -func (s *stack[T]) pop() T { - idx := s.len() - 1 - val := s.arr[idx] - - // Avoid memory leak - var zero T - s.arr[idx] = zero - - s.arr = s.arr[:idx] - return val -} - -// takeAll returns all elements in the stack in order as they are stored - i.e. -// the top-most stack element is the last one. -func (s *stack[T]) takeAll() []T { - arr := s.arr - s.arr = nil - return arr -} - -// len returns number of elements in the stack. -func (s *stack[T]) len() int { return len(s.arr) } |