src.elv.sh@v0.21.0-dev.0.20240515223629-06979efb9a2a/pkg/md/stack.go (about)

     1  package md
     2  
     3  type stack[T any] []T
     4  
     5  func (s *stack[T]) push(v T) {
     6  	*s = append(*s, v)
     7  }
     8  
     9  func (s stack[T]) peek() T {
    10  	return s[len(s)-1]
    11  }
    12  
    13  func (s *stack[T]) pop() T {
    14  	last := s.peek()
    15  	*s = (*s)[:len(*s)-1]
    16  	return last
    17  }