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/observability/agentsobs/gen_reporter.go b/observability/agentsobs/gen_reporter.go index 4f3d80f91..6513e9200 100644 --- a/observability/agentsobs/gen_reporter.go +++ b/observability/agentsobs/gen_reporter.go @@ -6,7 +6,7 @@ import ( "time" ) -const Version_NOV7HC8 = true +const Version_1P0Q2E8 = true type KeyResolver interface { Resolve(string) diff --git a/observability/egressobs/gen_reporter.go b/observability/egressobs/gen_reporter.go index c33e0615a..d33fcda45 100644 --- a/observability/egressobs/gen_reporter.go +++ b/observability/egressobs/gen_reporter.go @@ -6,7 +6,7 @@ import ( "time" ) -const Version_A7A5178 = true +const Version_57DK1I8 = true type KeyResolver interface { Resolve(string) diff --git a/observability/gatewayobs/gen_reporter.go b/observability/gatewayobs/gen_reporter.go index a277bcf16..dfd3b4fc4 100644 --- a/observability/gatewayobs/gen_reporter.go +++ b/observability/gatewayobs/gen_reporter.go @@ -6,7 +6,7 @@ import ( "time" ) -const Version_8IGGP5O = true +const Version_J2LFGS0 = true type KeyResolver interface { Resolve(string) diff --git a/observability/telephonyobs/gen_reporter.go b/observability/telephonyobs/gen_reporter.go index 9a47e1b86..cea307e04 100644 --- a/observability/telephonyobs/gen_reporter.go +++ b/observability/telephonyobs/gen_reporter.go @@ -6,7 +6,7 @@ import ( "time" ) -const Version_TP5LDH8 = true +const Version_KU2K2VO = true type KeyResolver interface { Resolve(string) 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] +}