19 vec_ints ints = vec_ints_new_with_capacity(10, stdalloc_get());
20 const int32_t upto = 100;
22 for (int32_t i = 0; i < upto; i++) {
23 vec_ints_push(&ints, i);
27 for (int32_t i = 0; i < upto; i++) {
28 int* value = vec_ints_write(&ints, i);
32 for (int32_t i = 0; i < upto; i++) {
33 DC_ASSERT(*vec_ints_read(&ints, i) == i + 1);
37 int32_t last_value = vec_ints_pop(&ints);
39 DC_ASSERT(vec_ints_size(&ints) == upto - 1);
43 vec_ints_delete(&ints);
52 fprintf(
stream,
"complex_data@%p {\n", self);
62#define ITEM struct complex_data
63#define ITEM_DELETE complex_data_delete
64#define ITEM_DEBUG complex_data_debug
65#define NAME vec_complex_data
69 vec_complex_data vec = vec_complex_data_new_with_capacity(5, stdalloc_get());
71 for (
size_t i = 0; i < entries; i++) {
72 struct complex_data item = {.description = strdup(
"Complex item"), .score = i * 10};
73 vec_complex_data_push(&vec,
item);
76 DC_ASSERT(vec_complex_data_size(&vec) == entries);
78 struct complex_data* first_item = vec_complex_data_write(&vec, 0);
79 first_item->
score += 5;
88 vec_complex_data_delete(&vec);
97 char_vec vec = char_vec_new(stdalloc_get());
98 char_vec_push(&vec,
'H');
99 char_vec_push(&vec,
'e');
100 char_vec_push(&vec,
'l');
101 char_vec_push(&vec,
'l');
102 char_vec_push(&vec,
'o');
103 char_vec_push(&vec,
' ');
104 char_vec_push(&vec,
'W');
105 char_vec_push(&vec,
'o');
106 char_vec_push(&vec,
'r');
107 char_vec_push(&vec,
'l');
108 char_vec_push(&vec,
'd');
113 char_vec_iter_const iter = char_vec_get_iter_const(&vec);
114 char const*
item = NULL;
115 while (
item = char_vec_iter_const_next(&iter),
item != NULL) {
122 char_vec_iter_const iter = char_vec_get_iter_const(&vec);
124 char const* c = NULL;
126 while ((c = char_vec_iter_const_next(&iter))) {
127 printf(
"entry for '%c' at index %zu\n", *c, index);
132 char_vec_delete(&vec);
static void free(SELF *self, void *ptr)
void complex_data_debug(struct complex_data const *self, dc_debug_fmt fmt, FILE *stream)
void complex_data_delete(struct complex_data *self)
void complex_data_example()
dc_debug_fmt dc_debug_fmt_scope_end(dc_debug_fmt fmt)
dc_debug_fmt dc_debug_fmt_scope_begin(dc_debug_fmt fmt)
static void dc_debug_fmt_print(dc_debug_fmt fmt, FILE *stream, const char *format,...)
static dc_debug_fmt dc_debug_fmt_new()
#define DC_ASSERT(expr,...)
Debug format helpers for debug printin data structures.
static FILE * stream(SELF *self)
Opens a file for.