#include <v_lib.h>

DEQUE_STRUCT(int,int)

DECLARE_DEQUE_API(int,__inline,int)

IMPLEMENT_DEQUE_API(int,,int)

int main(void)
{
	int a, *ptr;
	vsize_t count;
	int_deque_p deq = NULL;

	logStartConsoleLog();
	logUpperLevel(LOG_TRACE);

	a=1;DEQ_PUSH(int,deq,&a);
	a=2;DEQ_PUSH(int,deq,&a);
	a=3;DEQ_PUSH(int,deq,&a);
	a=0;DEQ_PUSH_BACK(int,deq,&a);
	a=4;DEQ_PUSH(int,deq,&a);
	/* 0,1,2,3,4 */
	DEQ_REMOVE_BACK(int,deq,1);
	/* 0,2,3,4 */
	DEQ_REMOVE(int,deq,1);
	/* 0,2,4 */
	for(count=0;DEQ_PEEK_BACK(int,deq,count,&ptr);count++)
		printf("%u -> %d\n",count,*ptr);
	DEQ_FREE(int,deq);
	
	memPrintStats();
	return 0;
}
