File tree Expand file tree Collapse file tree 3 files changed +32
-1
lines changed
Expand file tree Collapse file tree 3 files changed +32
-1
lines changed Original file line number Diff line number Diff line change 1+ ---
2+ " @livekit/protocol " : patch
3+ ---
4+
5+ add stack utility
Original file line number Diff line number Diff line change @@ -16,6 +16,7 @@ package utils
1616
1717import (
1818 "io"
19+ "slices"
1920
2021 "go.uber.org/multierr"
2122)
@@ -28,7 +29,7 @@ func CombineClosers(cs ...io.Closer) Closers {
2829
2930func (s * Closers ) Close () error {
3031 var err error
31- for _ , c := range * s {
32+ for _ , c := range slices . Backward ( * s ) {
3233 if c != nil {
3334 err = multierr .Append (err , c .Close ())
3435 }
Original file line number Diff line number Diff line change 1+ package stack
2+
3+ type Stack [T any ] []T
4+
5+ func (s Stack [T ]) Empty () bool {
6+ return len (s ) == 0
7+ }
8+
9+ func (s * Stack [T ]) Reset () {
10+ * s = (* s )[:0 ]
11+ }
12+
13+ func (s * Stack [T ]) Push (v T ) {
14+ * s = append (* s , v )
15+ }
16+
17+ func (s * Stack [T ]) Pop () T {
18+ v := (* s )[len (* s )- 1 ]
19+ * s = (* s )[:len (* s )- 1 ]
20+ return v
21+ }
22+
23+ func (s Stack [T ]) Peek () T {
24+ return s [len (s )- 1 ]
25+ }
You can’t perform that action at this time.
0 commit comments