summaryrefslogtreecommitdiff
path: root/src/stack.h
blob: 9063592b14ea3f78dd6a32a5732b4863f4da2b15 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/* stack.h - simple stacking */

#ifndef HOEDOWN_STACK_H
#define HOEDOWN_STACK_H

#include <stdlib.h>

#ifdef __cplusplus
extern "C" {
#endif

struct hoedown_stack {
	void **item;
	size_t size;
	size_t asize;
};

typedef struct hoedown_stack hoedown_stack;

int hoedown_stack_new(hoedown_stack *, size_t);
void hoedown_stack_free(hoedown_stack *);
int hoedown_stack_grow(hoedown_stack *, size_t);
int hoedown_stack_push(hoedown_stack *, void *);
void *hoedown_stack_pop(hoedown_stack *);
void *hoedown_stack_top(hoedown_stack *);

#ifdef __cplusplus
}
#endif

#endif /** HOEDOWN_STACK_H **/