summaryrefslogtreecommitdiff
path: root/stack.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-01-09 02:04:19 +0100
committerDimitri Sokolyuk <demon@dim13.org>2015-01-09 02:04:19 +0100
commitcc736093e7e4521ad392b13f74cf3da51308bf18 (patch)
tree6c0509090eced91488914ffe04e1cdcdfb4f2671 /stack.go
Initial import
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
+}