lwb/util/stack.go

22 lines
285 B
Go
Raw Permalink Normal View History

2024-12-13 13:11:02 +01:00
package util
type Stack[T any] []T
func (s *Stack[T]) Push(v T) {
*s = append(*s, v)
}
func (s *Stack[T]) Pop() T {
v := (*s)[len(*s)-1]
*s = (*s)[:len(*s)-1]
return v
}
func (s Stack[T]) Peek() T {
return s[len(s)-1]
}
func (s Stack[T]) Empty() bool {
return len(s) == 0
}