#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); daPush(da, 69); daPush(da, 420); daPush(da, 1337); daPush(da, 34); daPush(da, 35); daPush(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; daPush(da2, 'H'); daPush(da2, 'i'); daPush(da2, ' '); daPush(da2, 'm'); daPush(da2, 'o'); daPush(da2, 'm'); daPush(da2, '?'); daPush(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) { daPush(da3, "Test"); } char * str; daPop(da3, str); printf("%s\n", str); printf("----------\n"); printf("DA4\n"); printf("----------\n"); dynarr(double) da4 = daCreate(double, 1).val; daPush(da4, 69.692343); printf("float: %F\n", da4[0]); printf("----------\n"); printf("DA5\n"); printf("----------\n"); dynarr(char *) da5 = daCreate(char *, 1).val; daPush(da5, "Hello, "); daPush(da5, "World!"); DLog("%s%s\n", da5[0], da5[1]); cleanup: daFree(da5); daFree(da4); daFree(da3); free(message); daFree(da2); daFree(da); return 0; } #endif