summaryrefslogtreecommitdiff
path: root/lib/stack.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/stack.h')
-rw-r--r--lib/stack.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/stack.h b/lib/stack.h
new file mode 100644
index 0000000..38fb185
--- /dev/null
+++ b/lib/stack.h
@@ -0,0 +1,22 @@
+#ifndef STACK_H
+#define STACK_H
+
+#include "def.h"
+
+#include <stddef.h>
+
+struct Stack {
+ size_t size;
+ size_t capacity;
+ void* data;
+};
+
+void stack_init(struct Stack* stack, size_t size);
+void stack_push(struct Stack* stack, void* data, size_t len);
+void* stack_pop(struct Stack* stack, size_t len);
+void stack_free(struct Stack* stack);
+
+void stack_push_int(struct Stack* stack, int value);
+bool stack_pop_int(struct Stack* stack, int* value);
+
+#endif