diff --git a/.changeset/gold-fishes-smash.md b/.changeset/gold-fishes-smash.md new file mode 100644 index 000000000..bfcb43869 --- /dev/null +++ b/.changeset/gold-fishes-smash.md @@ -0,0 +1,5 @@ +--- +"@livekit/protocol": patch +--- + +add stack utility diff --git a/utils/stack/stack.go b/utils/stack/stack.go new file mode 100644 index 000000000..152342434 --- /dev/null +++ b/utils/stack/stack.go @@ -0,0 +1,25 @@ +package stack + +type Stack[T any] []T + +func (s Stack[T]) Empty() bool { + return len(s) == 0 +} + +func (s *Stack[T]) Reset() { + *s = (*s)[:0] +} + +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] +}