17 ints arena = ints_new_with_capacity_for(12, stdalloc_get());
18 ints_insert(&arena, 23);
19 ints_insert(&arena, 42);
20 ints_insert(&arena, 1000);
21 ints_insert(&arena, 1001);
23 assert(ints_size(&arena) == 4);
25 ints_iter_const print_ints = ints_get_iter_const(&arena);
26 ints_iv_const
const* entry = NULL;
27 while ((entry = ints_iter_const_next(&print_ints))) {
28 printf(
"entry for %d at %d\n", *entry->value, entry->index.index);
33 ints_iter inc_ints = ints_get_iter(&arena);
34 ints_iv
const* entry = NULL;
35 while ((entry = ints_iter_next(&inc_ints))) {
36 printf(
"incrementing for %d = %d + 1 at %d\n", *entry->value, *entry->value,
60 foo_arena arena = foo_arena_new_with_capacity_for(12, stdalloc_get());
61 foo_arena_index index_a = foo_arena_insert(
62 &arena, (
struct foo){.x = 42, .y =
"A", .owned_data = (
int*)
malloc(
sizeof(
int))});
63 foo_arena_index index_b = foo_arena_insert(
64 &arena, (
struct foo){.x = 41, .y =
"B", .owned_data = (
int*)
malloc(
sizeof(
int))});
66 assert(foo_arena_size(&arena) == 2);
67 assert(foo_arena_full(&arena) ==
false);
68 assert(foo_arena_read(&arena, index_a)->x == 42);
69 assert(foo_arena_read(&arena, index_b)->x == 41);
71 foo_arena_write(&arena, index_b)->x = 100;
72 assert(foo_arena_read(&arena, index_b)->x == 100);
75 struct foo entry_a = foo_arena_remove(&arena, index_a);
78 foo_arena_delete(&arena);
81 assert(entry_a.
x == 42);