summaryrefslogtreecommitdiff
path: root/stack.go
diff options
context:
space:
mode:
Diffstat (limited to 'stack.go')
-rw-r--r--stack.go19
1 files changed, 19 insertions, 0 deletions
diff --git a/stack.go b/stack.go
new file mode 100644
index 0000000..d8b5b6c
--- /dev/null
+++ b/stack.go
@@ -0,0 +1,19 @@
+package stack
+
+type Stack []interface{}
+
+func NewStack() Stack {
+ return Stack{}
+}
+
+func (s *Stack) Push(v interface{}) {
+ *s = append(*s, v)
+}
+
+func (s *Stack) Pop() (v interface{}, ok bool) {
+ size := len(*s) - 1
+ if ok = size >= 0; ok {
+ v, *s = (*s)[size], (*s)[:size]
+ }
+ return v, ok
+}