#include #define DA_IMPLEMENTATION #include "da.h" #define EHAN_IMPLEMENTATION #include "ehan.h" #if 0 int main(void) { dynarr(char *) da = daCreate(char *,4).val; for (size_t i = 0; i < 1000; ++i) { daPushStr(da, "hi"); } for (size_t i = 0; i < daSize(da); ++i) { ILog("%zu: %s\n", i, da[i]); } daFree(da); return 0; } #else void printDaU16(void * item) { printf("%hu\n", *((unsigned short *) item)); } void printDaS32(void * item) { printf("%hu\n", *((int *) item)); } int main(void) { printf("----------\n"); printf("DA1\n"); printf("----------\n"); GenericReturn gr = daCreate(unsigned short, 1); if (ehanCheck(gr)) { ELog("%s\n", resultError(gr)); exit(1); } dynarr(unsigned short) da = resultGeneric(dynarr(unsigned short), gr); daPushLit(da, 69); daPushLit(da, 420); daPushLit(da, 1337); daPushLit(da, 34); daPushLit(da, 35); daPushLit(da, 1667); unsigned short x = 0; daPop(da, x); printf("x: %hu\n", x); daForeach(da, printDaU16); printf("%zu %zu %zu\n", daSize(da), daCap(da), daType(da)); printf("----------\n"); printf("DA2\n"); printf("----------\n"); dynarr(char) da2 = daCreate(char, 1).val; daPushLit(da2, 'H'); daPushLit(da2, 'i'); daPushLit(da2, ' '); daPushLit(da2, 'm'); daPushLit(da2, 'o'); daPushLit(da2, 'm'); daPushLit(da2, '?'); daPushLit(da2, '?'); *(char *)daGetRef(da2, 6) = '!'; daPopDiscard(da2); heapstr message = daToCStr(da2); printf("%s\n", message); printf("----------\n"); printf("DA3\n"); printf("----------\n"); dynarr(char *) da3 = daCreate(char *, 1).val; for (size_t i = 0; i < 1000000; ++i) { daPushStr(da3, "Test"); } char * str; daPop(da3, str); printf("%s\n", str); cleanup: daFree(da3); free(message); daFree(da2); daFree(da); return 0; } #endif