Thread-safe, generic stacks for Go.
For full documentation see pkg.go.dev.
go get github.com/twharmon/stacks
package main
import (
"fmt"
"github.com/twharmon/stacks"
)
func main() {
// Create a new stack of ints
s := stacks.New[int]()
// Push some values
s.Push(1, 2, 3)
// Peek at the head
s.Peek() // 3
// Pop a value
s.Pop() // 3
// Get length of the stack
s.Len() // 2
// Get an ordered slice of the values in the stack
s.Slice() // [1, 2]
// Clear the stack
s.Clear()
}
Make a pull request.
goos: darwin
goarch: arm64
pkg: github.com/twharmon/stacks
BenchmarkPush/push-10 74554 15708 ns/op 25256 B/op 13 allocs/op
BenchmarkPush/push_pop-10 42314 27693 ns/op 2088 B/op 9 allocs/op