Refactor array to avoid having to include external types
This commit is contained in:
		
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -6,7 +6,6 @@ | ||||
| #define ARRAY_H | ||||
|  | ||||
| #include "../mem_allocator/mem_allocator.h" | ||||
| #include "../strings/str8/str8.h" | ||||
| #include "../../common/misc/misc_utils.h" | ||||
| #include "../../common/aliases/aliases.h" | ||||
| #include "../../common/platform/platform.h" | ||||
| @@ -15,129 +14,252 @@ | ||||
| #define wapp_str8_array(...) ((Str8Array){ \ | ||||
|   .items = (Str8[wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(Str8, __VA_ARGS__) * 2)]){__VA_ARGS__}, \ | ||||
|   .count = wapp_misc_utils_va_args_count(Str8, __VA_ARGS__), \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(Str8, __VA_ARGS__) * 2) \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(Str8, __VA_ARGS__) * 2), \ | ||||
|   .item_size = sizeof(Str8) \ | ||||
| }) | ||||
| #define wapp_str8_array_with_capacity(CAPACITY) ((Str8Array){.items = (Str8[CAPACITY]){0}, .count = 0, .capacity = CAPACITY}) | ||||
| #define wapp_str8_array_with_capacity(CAPACITY) ((Str8Array){.items = (Str8[CAPACITY]){0}, .count = 0, .capacity = CAPACITY, .item_size = sizeof(Str8)}) | ||||
| #define wapp_str8_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY) ((Str8Array *)_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY, sizeof(Str8))) | ||||
| #define wapp_str8_array_pop(ARRAY_PTR) (ARRAY_PTR != NULL && (ARRAY_PTR)->count > 0 ? \ | ||||
|   *_str8_array_pop(ARRAY_PTR) : \ | ||||
|   (Str8){0} \ | ||||
| ) | ||||
| #define wapp_void_ptr_array(...) ((VoidPArray){ \ | ||||
|   .items = (void *[wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(void *, __VA_ARGS__) * 2)]){__VA_ARGS__}, \ | ||||
|   .count = wapp_misc_utils_va_args_count(void *, __VA_ARGS__), \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(void *, __VA_ARGS__) * 2) \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(void *, __VA_ARGS__) * 2), \ | ||||
|   .item_size = sizeof(void *) \ | ||||
| }) | ||||
| #define wapp_void_ptr_array_with_capacity(CAPACITY) ((VoidPArray){.items = (void *[CAPACITY]){0}, .count = 0, .capacity = CAPACITY}) | ||||
| #define wapp_void_ptr_array_with_capacity(CAPACITY) ((VoidPArray){.items = (void *[CAPACITY]){0}, .count = 0, .capacity = CAPACITY, .item_size = sizeof(void *)}) | ||||
| #define wapp_void_ptr_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY) ((VoidPArray *)_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY, sizeof(void *))) | ||||
| #define wapp_void_ptr_array_pop(ARRAY_PTR) (ARRAY_PTR != NULL && (ARRAY_PTR)->count > 0 ? \ | ||||
|   *_void_ptr_array_pop(ARRAY_PTR) : \ | ||||
|   (void *){0} \ | ||||
| ) | ||||
| #define wapp_bool_array(...) ((BoolArray){ \ | ||||
|   .items = (bool[wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(bool, __VA_ARGS__) * 2)]){__VA_ARGS__}, \ | ||||
|   .count = wapp_misc_utils_va_args_count(bool, __VA_ARGS__), \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(bool, __VA_ARGS__) * 2) \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(bool, __VA_ARGS__) * 2), \ | ||||
|   .item_size = sizeof(bool) \ | ||||
| }) | ||||
| #define wapp_bool_array_with_capacity(CAPACITY) ((BoolArray){.items = (bool[CAPACITY]){0}, .count = 0, .capacity = CAPACITY}) | ||||
| #define wapp_bool_array_with_capacity(CAPACITY) ((BoolArray){.items = (bool[CAPACITY]){0}, .count = 0, .capacity = CAPACITY, .item_size = sizeof(bool)}) | ||||
| #define wapp_bool_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY) ((BoolArray *)_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY, sizeof(bool))) | ||||
| #define wapp_bool_array_pop(ARRAY_PTR) (ARRAY_PTR != NULL && (ARRAY_PTR)->count > 0 ? \ | ||||
|   *_bool_array_pop(ARRAY_PTR) : \ | ||||
|   (bool){0} \ | ||||
| ) | ||||
| #define wapp_char_array(...) ((CharArray){ \ | ||||
|   .items = (char[wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(char, __VA_ARGS__) * 2)]){__VA_ARGS__}, \ | ||||
|   .count = wapp_misc_utils_va_args_count(char, __VA_ARGS__), \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(char, __VA_ARGS__) * 2) \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(char, __VA_ARGS__) * 2), \ | ||||
|   .item_size = sizeof(char) \ | ||||
| }) | ||||
| #define wapp_char_array_with_capacity(CAPACITY) ((CharArray){.items = (char[CAPACITY]){0}, .count = 0, .capacity = CAPACITY}) | ||||
| #define wapp_char_array_with_capacity(CAPACITY) ((CharArray){.items = (char[CAPACITY]){0}, .count = 0, .capacity = CAPACITY, .item_size = sizeof(char)}) | ||||
| #define wapp_char_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY) ((CharArray *)_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY, sizeof(char))) | ||||
| #define wapp_char_array_pop(ARRAY_PTR) (ARRAY_PTR != NULL && (ARRAY_PTR)->count > 0 ? \ | ||||
|   *_char_array_pop(ARRAY_PTR) : \ | ||||
|   (char){0} \ | ||||
| ) | ||||
| #define wapp_c8_array(...) ((C8Array){ \ | ||||
|   .items = (c8[wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(c8, __VA_ARGS__) * 2)]){__VA_ARGS__}, \ | ||||
|   .count = wapp_misc_utils_va_args_count(c8, __VA_ARGS__), \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(c8, __VA_ARGS__) * 2) \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(c8, __VA_ARGS__) * 2), \ | ||||
|   .item_size = sizeof(c8) \ | ||||
| }) | ||||
| #define wapp_c8_array_with_capacity(CAPACITY) ((C8Array){.items = (c8[CAPACITY]){0}, .count = 0, .capacity = CAPACITY}) | ||||
| #define wapp_c8_array_with_capacity(CAPACITY) ((C8Array){.items = (c8[CAPACITY]){0}, .count = 0, .capacity = CAPACITY, .item_size = sizeof(c8)}) | ||||
| #define wapp_c8_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY) ((C8Array *)_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY, sizeof(c8))) | ||||
| #define wapp_c8_array_pop(ARRAY_PTR) (ARRAY_PTR != NULL && (ARRAY_PTR)->count > 0 ? \ | ||||
|   *_c8_array_pop(ARRAY_PTR) : \ | ||||
|   (c8){0} \ | ||||
| ) | ||||
| #define wapp_c16_array(...) ((C16Array){ \ | ||||
|   .items = (c16[wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(c16, __VA_ARGS__) * 2)]){__VA_ARGS__}, \ | ||||
|   .count = wapp_misc_utils_va_args_count(c16, __VA_ARGS__), \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(c16, __VA_ARGS__) * 2) \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(c16, __VA_ARGS__) * 2), \ | ||||
|   .item_size = sizeof(c16) \ | ||||
| }) | ||||
| #define wapp_c16_array_with_capacity(CAPACITY) ((C16Array){.items = (c16[CAPACITY]){0}, .count = 0, .capacity = CAPACITY}) | ||||
| #define wapp_c16_array_with_capacity(CAPACITY) ((C16Array){.items = (c16[CAPACITY]){0}, .count = 0, .capacity = CAPACITY, .item_size = sizeof(c16)}) | ||||
| #define wapp_c16_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY) ((C16Array *)_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY, sizeof(c16))) | ||||
| #define wapp_c16_array_pop(ARRAY_PTR) (ARRAY_PTR != NULL && (ARRAY_PTR)->count > 0 ? \ | ||||
|   *_c16_array_pop(ARRAY_PTR) : \ | ||||
|   (c16){0} \ | ||||
| ) | ||||
| #define wapp_c32_array(...) ((C32Array){ \ | ||||
|   .items = (c32[wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(c32, __VA_ARGS__) * 2)]){__VA_ARGS__}, \ | ||||
|   .count = wapp_misc_utils_va_args_count(c32, __VA_ARGS__), \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(c32, __VA_ARGS__) * 2) \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(c32, __VA_ARGS__) * 2), \ | ||||
|   .item_size = sizeof(c32) \ | ||||
| }) | ||||
| #define wapp_c32_array_with_capacity(CAPACITY) ((C32Array){.items = (c32[CAPACITY]){0}, .count = 0, .capacity = CAPACITY}) | ||||
| #define wapp_c32_array_with_capacity(CAPACITY) ((C32Array){.items = (c32[CAPACITY]){0}, .count = 0, .capacity = CAPACITY, .item_size = sizeof(c32)}) | ||||
| #define wapp_c32_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY) ((C32Array *)_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY, sizeof(c32))) | ||||
| #define wapp_c32_array_pop(ARRAY_PTR) (ARRAY_PTR != NULL && (ARRAY_PTR)->count > 0 ? \ | ||||
|   *_c32_array_pop(ARRAY_PTR) : \ | ||||
|   (c32){0} \ | ||||
| ) | ||||
| #define wapp_i8_array(...) ((I8Array){ \ | ||||
|   .items = (i8[wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(i8, __VA_ARGS__) * 2)]){__VA_ARGS__}, \ | ||||
|   .count = wapp_misc_utils_va_args_count(i8, __VA_ARGS__), \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(i8, __VA_ARGS__) * 2) \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(i8, __VA_ARGS__) * 2), \ | ||||
|   .item_size = sizeof(i8) \ | ||||
| }) | ||||
| #define wapp_i8_array_with_capacity(CAPACITY) ((I8Array){.items = (i8[CAPACITY]){0}, .count = 0, .capacity = CAPACITY}) | ||||
| #define wapp_i8_array_with_capacity(CAPACITY) ((I8Array){.items = (i8[CAPACITY]){0}, .count = 0, .capacity = CAPACITY, .item_size = sizeof(i8)}) | ||||
| #define wapp_i8_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY) ((I8Array *)_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY, sizeof(i8))) | ||||
| #define wapp_i8_array_pop(ARRAY_PTR) (ARRAY_PTR != NULL && (ARRAY_PTR)->count > 0 ? \ | ||||
|   *_i8_array_pop(ARRAY_PTR) : \ | ||||
|   (i8){0} \ | ||||
| ) | ||||
| #define wapp_i16_array(...) ((I16Array){ \ | ||||
|   .items = (i16[wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(i16, __VA_ARGS__) * 2)]){__VA_ARGS__}, \ | ||||
|   .count = wapp_misc_utils_va_args_count(i16, __VA_ARGS__), \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(i16, __VA_ARGS__) * 2) \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(i16, __VA_ARGS__) * 2), \ | ||||
|   .item_size = sizeof(i16) \ | ||||
| }) | ||||
| #define wapp_i16_array_with_capacity(CAPACITY) ((I16Array){.items = (i16[CAPACITY]){0}, .count = 0, .capacity = CAPACITY}) | ||||
| #define wapp_i16_array_with_capacity(CAPACITY) ((I16Array){.items = (i16[CAPACITY]){0}, .count = 0, .capacity = CAPACITY, .item_size = sizeof(i16)}) | ||||
| #define wapp_i16_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY) ((I16Array *)_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY, sizeof(i16))) | ||||
| #define wapp_i16_array_pop(ARRAY_PTR) (ARRAY_PTR != NULL && (ARRAY_PTR)->count > 0 ? \ | ||||
|   *_i16_array_pop(ARRAY_PTR) : \ | ||||
|   (i16){0} \ | ||||
| ) | ||||
| #define wapp_i32_array(...) ((I32Array){ \ | ||||
|   .items = (i32[wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(i32, __VA_ARGS__) * 2)]){__VA_ARGS__}, \ | ||||
|   .count = wapp_misc_utils_va_args_count(i32, __VA_ARGS__), \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(i32, __VA_ARGS__) * 2) \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(i32, __VA_ARGS__) * 2), \ | ||||
|   .item_size = sizeof(i32) \ | ||||
| }) | ||||
| #define wapp_i32_array_with_capacity(CAPACITY) ((I32Array){.items = (i32[CAPACITY]){0}, .count = 0, .capacity = CAPACITY}) | ||||
| #define wapp_i32_array_with_capacity(CAPACITY) ((I32Array){.items = (i32[CAPACITY]){0}, .count = 0, .capacity = CAPACITY, .item_size = sizeof(i32)}) | ||||
| #define wapp_i32_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY) ((I32Array *)_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY, sizeof(i32))) | ||||
| #define wapp_i32_array_pop(ARRAY_PTR) (ARRAY_PTR != NULL && (ARRAY_PTR)->count > 0 ? \ | ||||
|   *_i32_array_pop(ARRAY_PTR) : \ | ||||
|   (i32){0} \ | ||||
| ) | ||||
| #define wapp_i64_array(...) ((I64Array){ \ | ||||
|   .items = (i64[wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(i64, __VA_ARGS__) * 2)]){__VA_ARGS__}, \ | ||||
|   .count = wapp_misc_utils_va_args_count(i64, __VA_ARGS__), \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(i64, __VA_ARGS__) * 2) \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(i64, __VA_ARGS__) * 2), \ | ||||
|   .item_size = sizeof(i64) \ | ||||
| }) | ||||
| #define wapp_i64_array_with_capacity(CAPACITY) ((I64Array){.items = (i64[CAPACITY]){0}, .count = 0, .capacity = CAPACITY}) | ||||
| #define wapp_i64_array_with_capacity(CAPACITY) ((I64Array){.items = (i64[CAPACITY]){0}, .count = 0, .capacity = CAPACITY, .item_size = sizeof(i64)}) | ||||
| #define wapp_i64_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY) ((I64Array *)_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY, sizeof(i64))) | ||||
| #define wapp_i64_array_pop(ARRAY_PTR) (ARRAY_PTR != NULL && (ARRAY_PTR)->count > 0 ? \ | ||||
|   *_i64_array_pop(ARRAY_PTR) : \ | ||||
|   (i64){0} \ | ||||
| ) | ||||
| #define wapp_u8_array(...) ((U8Array){ \ | ||||
|   .items = (u8[wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(u8, __VA_ARGS__) * 2)]){__VA_ARGS__}, \ | ||||
|   .count = wapp_misc_utils_va_args_count(u8, __VA_ARGS__), \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(u8, __VA_ARGS__) * 2) \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(u8, __VA_ARGS__) * 2), \ | ||||
|   .item_size = sizeof(u8) \ | ||||
| }) | ||||
| #define wapp_u8_array_with_capacity(CAPACITY) ((U8Array){.items = (u8[CAPACITY]){0}, .count = 0, .capacity = CAPACITY}) | ||||
| #define wapp_u8_array_with_capacity(CAPACITY) ((U8Array){.items = (u8[CAPACITY]){0}, .count = 0, .capacity = CAPACITY, .item_size = sizeof(u8)}) | ||||
| #define wapp_u8_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY) ((U8Array *)_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY, sizeof(u8))) | ||||
| #define wapp_u8_array_pop(ARRAY_PTR) (ARRAY_PTR != NULL && (ARRAY_PTR)->count > 0 ? \ | ||||
|   *_u8_array_pop(ARRAY_PTR) : \ | ||||
|   (u8){0} \ | ||||
| ) | ||||
| #define wapp_u16_array(...) ((U16Array){ \ | ||||
|   .items = (u16[wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(u16, __VA_ARGS__) * 2)]){__VA_ARGS__}, \ | ||||
|   .count = wapp_misc_utils_va_args_count(u16, __VA_ARGS__), \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(u16, __VA_ARGS__) * 2) \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(u16, __VA_ARGS__) * 2), \ | ||||
|   .item_size = sizeof(u16) \ | ||||
| }) | ||||
| #define wapp_u16_array_with_capacity(CAPACITY) ((U16Array){.items = (u16[CAPACITY]){0}, .count = 0, .capacity = CAPACITY}) | ||||
| #define wapp_u16_array_with_capacity(CAPACITY) ((U16Array){.items = (u16[CAPACITY]){0}, .count = 0, .capacity = CAPACITY, .item_size = sizeof(u16)}) | ||||
| #define wapp_u16_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY) ((U16Array *)_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY, sizeof(u16))) | ||||
| #define wapp_u16_array_pop(ARRAY_PTR) (ARRAY_PTR != NULL && (ARRAY_PTR)->count > 0 ? \ | ||||
|   *_u16_array_pop(ARRAY_PTR) : \ | ||||
|   (u16){0} \ | ||||
| ) | ||||
| #define wapp_u32_array(...) ((U32Array){ \ | ||||
|   .items = (u32[wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(u32, __VA_ARGS__) * 2)]){__VA_ARGS__}, \ | ||||
|   .count = wapp_misc_utils_va_args_count(u32, __VA_ARGS__), \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(u32, __VA_ARGS__) * 2) \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(u32, __VA_ARGS__) * 2), \ | ||||
|   .item_size = sizeof(u32) \ | ||||
| }) | ||||
| #define wapp_u32_array_with_capacity(CAPACITY) ((U32Array){.items = (u32[CAPACITY]){0}, .count = 0, .capacity = CAPACITY}) | ||||
| #define wapp_u32_array_with_capacity(CAPACITY) ((U32Array){.items = (u32[CAPACITY]){0}, .count = 0, .capacity = CAPACITY, .item_size = sizeof(u32)}) | ||||
| #define wapp_u32_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY) ((U32Array *)_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY, sizeof(u32))) | ||||
| #define wapp_u32_array_pop(ARRAY_PTR) (ARRAY_PTR != NULL && (ARRAY_PTR)->count > 0 ? \ | ||||
|   *_u32_array_pop(ARRAY_PTR) : \ | ||||
|   (u32){0} \ | ||||
| ) | ||||
| #define wapp_u64_array(...) ((U64Array){ \ | ||||
|   .items = (u64[wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(u64, __VA_ARGS__) * 2)]){__VA_ARGS__}, \ | ||||
|   .count = wapp_misc_utils_va_args_count(u64, __VA_ARGS__), \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(u64, __VA_ARGS__) * 2) \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(u64, __VA_ARGS__) * 2), \ | ||||
|   .item_size = sizeof(u64) \ | ||||
| }) | ||||
| #define wapp_u64_array_with_capacity(CAPACITY) ((U64Array){.items = (u64[CAPACITY]){0}, .count = 0, .capacity = CAPACITY}) | ||||
| #define wapp_u64_array_with_capacity(CAPACITY) ((U64Array){.items = (u64[CAPACITY]){0}, .count = 0, .capacity = CAPACITY, .item_size = sizeof(u64)}) | ||||
| #define wapp_u64_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY) ((U64Array *)_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY, sizeof(u64))) | ||||
| #define wapp_u64_array_pop(ARRAY_PTR) (ARRAY_PTR != NULL && (ARRAY_PTR)->count > 0 ? \ | ||||
|   *_u64_array_pop(ARRAY_PTR) : \ | ||||
|   (u64){0} \ | ||||
| ) | ||||
| #define wapp_f32_array(...) ((F32Array){ \ | ||||
|   .items = (f32[wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(f32, __VA_ARGS__) * 2)]){__VA_ARGS__}, \ | ||||
|   .count = wapp_misc_utils_va_args_count(f32, __VA_ARGS__), \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(f32, __VA_ARGS__) * 2) \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(f32, __VA_ARGS__) * 2), \ | ||||
|   .item_size = sizeof(f32) \ | ||||
| }) | ||||
| #define wapp_f32_array_with_capacity(CAPACITY) ((F32Array){.items = (f32[CAPACITY]){0}, .count = 0, .capacity = CAPACITY}) | ||||
| #define wapp_f32_array_with_capacity(CAPACITY) ((F32Array){.items = (f32[CAPACITY]){0}, .count = 0, .capacity = CAPACITY, .item_size = sizeof(f32)}) | ||||
| #define wapp_f32_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY) ((F32Array *)_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY, sizeof(f32))) | ||||
| #define wapp_f32_array_pop(ARRAY_PTR) (ARRAY_PTR != NULL && (ARRAY_PTR)->count > 0 ? \ | ||||
|   *_f32_array_pop(ARRAY_PTR) : \ | ||||
|   (f32){0} \ | ||||
| ) | ||||
| #define wapp_f64_array(...) ((F64Array){ \ | ||||
|   .items = (f64[wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(f64, __VA_ARGS__) * 2)]){__VA_ARGS__}, \ | ||||
|   .count = wapp_misc_utils_va_args_count(f64, __VA_ARGS__), \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(f64, __VA_ARGS__) * 2) \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(f64, __VA_ARGS__) * 2), \ | ||||
|   .item_size = sizeof(f64) \ | ||||
| }) | ||||
| #define wapp_f64_array_with_capacity(CAPACITY) ((F64Array){.items = (f64[CAPACITY]){0}, .count = 0, .capacity = CAPACITY}) | ||||
| #define wapp_f64_array_with_capacity(CAPACITY) ((F64Array){.items = (f64[CAPACITY]){0}, .count = 0, .capacity = CAPACITY, .item_size = sizeof(f64)}) | ||||
| #define wapp_f64_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY) ((F64Array *)_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY, sizeof(f64))) | ||||
| #define wapp_f64_array_pop(ARRAY_PTR) (ARRAY_PTR != NULL && (ARRAY_PTR)->count > 0 ? \ | ||||
|   *_f64_array_pop(ARRAY_PTR) : \ | ||||
|   (f64){0} \ | ||||
| ) | ||||
| #define wapp_f128_array(...) ((F128Array){ \ | ||||
|   .items = (f128[wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(f128, __VA_ARGS__) * 2)]){__VA_ARGS__}, \ | ||||
|   .count = wapp_misc_utils_va_args_count(f128, __VA_ARGS__), \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(f128, __VA_ARGS__) * 2) \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(f128, __VA_ARGS__) * 2), \ | ||||
|   .item_size = sizeof(f128) \ | ||||
| }) | ||||
| #define wapp_f128_array_with_capacity(CAPACITY) ((F128Array){.items = (f128[CAPACITY]){0}, .count = 0, .capacity = CAPACITY}) | ||||
| #define wapp_f128_array_with_capacity(CAPACITY) ((F128Array){.items = (f128[CAPACITY]){0}, .count = 0, .capacity = CAPACITY, .item_size = sizeof(f128)}) | ||||
| #define wapp_f128_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY) ((F128Array *)_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY, sizeof(f128))) | ||||
| #define wapp_f128_array_pop(ARRAY_PTR) (ARRAY_PTR != NULL && (ARRAY_PTR)->count > 0 ? \ | ||||
|   *_f128_array_pop(ARRAY_PTR) : \ | ||||
|   (f128){0} \ | ||||
| ) | ||||
| #define wapp_iptr_array(...) ((IptrArray){ \ | ||||
|   .items = (iptr[wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(iptr, __VA_ARGS__) * 2)]){__VA_ARGS__}, \ | ||||
|   .count = wapp_misc_utils_va_args_count(iptr, __VA_ARGS__), \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(iptr, __VA_ARGS__) * 2) \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(iptr, __VA_ARGS__) * 2), \ | ||||
|   .item_size = sizeof(iptr) \ | ||||
| }) | ||||
| #define wapp_iptr_array_with_capacity(CAPACITY) ((IptrArray){.items = (iptr[CAPACITY]){0}, .count = 0, .capacity = CAPACITY}) | ||||
| #define wapp_iptr_array_with_capacity(CAPACITY) ((IptrArray){.items = (iptr[CAPACITY]){0}, .count = 0, .capacity = CAPACITY, .item_size = sizeof(iptr)}) | ||||
| #define wapp_iptr_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY) ((IptrArray *)_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY, sizeof(iptr))) | ||||
| #define wapp_iptr_array_pop(ARRAY_PTR) (ARRAY_PTR != NULL && (ARRAY_PTR)->count > 0 ? \ | ||||
|   *_iptr_array_pop(ARRAY_PTR) : \ | ||||
|   (iptr){0} \ | ||||
| ) | ||||
| #define wapp_uptr_array(...) ((UptrArray){ \ | ||||
|   .items = (uptr[wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(uptr, __VA_ARGS__) * 2)]){__VA_ARGS__}, \ | ||||
|   .count = wapp_misc_utils_va_args_count(uptr, __VA_ARGS__), \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(uptr, __VA_ARGS__) * 2) \ | ||||
|   .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count(uptr, __VA_ARGS__) * 2), \ | ||||
|   .item_size = sizeof(uptr) \ | ||||
| }) | ||||
| #define wapp_uptr_array_with_capacity(CAPACITY) ((UptrArray){.items = (uptr[CAPACITY]){0}, .count = 0, .capacity = CAPACITY}) | ||||
| #define wapp_uptr_array_with_capacity(CAPACITY) ((UptrArray){.items = (uptr[CAPACITY]){0}, .count = 0, .capacity = CAPACITY, .item_size = sizeof(uptr)}) | ||||
| #define wapp_uptr_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY) ((UptrArray *)_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY, sizeof(uptr))) | ||||
| #define wapp_uptr_array_pop(ARRAY_PTR) (ARRAY_PTR != NULL && (ARRAY_PTR)->count > 0 ? \ | ||||
|   *_uptr_array_pop(ARRAY_PTR) : \ | ||||
|   (uptr){0} \ | ||||
| ) | ||||
|  | ||||
| typedef struct str8 Str8; | ||||
|  | ||||
| typedef struct Str8Array Str8Array; | ||||
| struct Str8Array { | ||||
|   Str8 *items; | ||||
|   u64 count; | ||||
|   u64 capacity; | ||||
|   u64 item_size; | ||||
| }; | ||||
|  | ||||
| typedef struct VoidPArray VoidPArray; | ||||
| @@ -145,6 +267,7 @@ struct VoidPArray { | ||||
|   void * *items; | ||||
|   u64 count; | ||||
|   u64 capacity; | ||||
|   u64 item_size; | ||||
| }; | ||||
|  | ||||
| typedef struct BoolArray BoolArray; | ||||
| @@ -152,6 +275,7 @@ struct BoolArray { | ||||
|   bool *items; | ||||
|   u64 count; | ||||
|   u64 capacity; | ||||
|   u64 item_size; | ||||
| }; | ||||
|  | ||||
| typedef struct CharArray CharArray; | ||||
| @@ -159,6 +283,7 @@ struct CharArray { | ||||
|   char *items; | ||||
|   u64 count; | ||||
|   u64 capacity; | ||||
|   u64 item_size; | ||||
| }; | ||||
|  | ||||
| typedef struct C8Array C8Array; | ||||
| @@ -166,6 +291,7 @@ struct C8Array { | ||||
|   c8 *items; | ||||
|   u64 count; | ||||
|   u64 capacity; | ||||
|   u64 item_size; | ||||
| }; | ||||
|  | ||||
| typedef struct C16Array C16Array; | ||||
| @@ -173,6 +299,7 @@ struct C16Array { | ||||
|   c16 *items; | ||||
|   u64 count; | ||||
|   u64 capacity; | ||||
|   u64 item_size; | ||||
| }; | ||||
|  | ||||
| typedef struct C32Array C32Array; | ||||
| @@ -180,6 +307,7 @@ struct C32Array { | ||||
|   c32 *items; | ||||
|   u64 count; | ||||
|   u64 capacity; | ||||
|   u64 item_size; | ||||
| }; | ||||
|  | ||||
| typedef struct I8Array I8Array; | ||||
| @@ -187,6 +315,7 @@ struct I8Array { | ||||
|   i8 *items; | ||||
|   u64 count; | ||||
|   u64 capacity; | ||||
|   u64 item_size; | ||||
| }; | ||||
|  | ||||
| typedef struct I16Array I16Array; | ||||
| @@ -194,6 +323,7 @@ struct I16Array { | ||||
|   i16 *items; | ||||
|   u64 count; | ||||
|   u64 capacity; | ||||
|   u64 item_size; | ||||
| }; | ||||
|  | ||||
| typedef struct I32Array I32Array; | ||||
| @@ -201,6 +331,7 @@ struct I32Array { | ||||
|   i32 *items; | ||||
|   u64 count; | ||||
|   u64 capacity; | ||||
|   u64 item_size; | ||||
| }; | ||||
|  | ||||
| typedef struct I64Array I64Array; | ||||
| @@ -208,6 +339,7 @@ struct I64Array { | ||||
|   i64 *items; | ||||
|   u64 count; | ||||
|   u64 capacity; | ||||
|   u64 item_size; | ||||
| }; | ||||
|  | ||||
| typedef struct U8Array U8Array; | ||||
| @@ -215,6 +347,7 @@ struct U8Array { | ||||
|   u8 *items; | ||||
|   u64 count; | ||||
|   u64 capacity; | ||||
|   u64 item_size; | ||||
| }; | ||||
|  | ||||
| typedef struct U16Array U16Array; | ||||
| @@ -222,6 +355,7 @@ struct U16Array { | ||||
|   u16 *items; | ||||
|   u64 count; | ||||
|   u64 capacity; | ||||
|   u64 item_size; | ||||
| }; | ||||
|  | ||||
| typedef struct U32Array U32Array; | ||||
| @@ -229,6 +363,7 @@ struct U32Array { | ||||
|   u32 *items; | ||||
|   u64 count; | ||||
|   u64 capacity; | ||||
|   u64 item_size; | ||||
| }; | ||||
|  | ||||
| typedef struct U64Array U64Array; | ||||
| @@ -236,6 +371,7 @@ struct U64Array { | ||||
|   u64 *items; | ||||
|   u64 count; | ||||
|   u64 capacity; | ||||
|   u64 item_size; | ||||
| }; | ||||
|  | ||||
| typedef struct F32Array F32Array; | ||||
| @@ -243,6 +379,7 @@ struct F32Array { | ||||
|   f32 *items; | ||||
|   u64 count; | ||||
|   u64 capacity; | ||||
|   u64 item_size; | ||||
| }; | ||||
|  | ||||
| typedef struct F64Array F64Array; | ||||
| @@ -250,6 +387,7 @@ struct F64Array { | ||||
|   f64 *items; | ||||
|   u64 count; | ||||
|   u64 capacity; | ||||
|   u64 item_size; | ||||
| }; | ||||
|  | ||||
| typedef struct F128Array F128Array; | ||||
| @@ -257,6 +395,7 @@ struct F128Array { | ||||
|   f128 *items; | ||||
|   u64 count; | ||||
|   u64 capacity; | ||||
|   u64 item_size; | ||||
| }; | ||||
|  | ||||
| typedef struct IptrArray IptrArray; | ||||
| @@ -264,6 +403,7 @@ struct IptrArray { | ||||
|   iptr *items; | ||||
|   u64 count; | ||||
|   u64 capacity; | ||||
|   u64 item_size; | ||||
| }; | ||||
|  | ||||
| typedef struct UptrArray UptrArray; | ||||
| @@ -271,227 +411,209 @@ struct UptrArray { | ||||
|   uptr *items; | ||||
|   u64 count; | ||||
|   u64 capacity; | ||||
|   u64 item_size; | ||||
| }; | ||||
|  | ||||
| Str8 *wapp_str8_array_get(const Str8Array *array, u64 index); | ||||
| void wapp_str8_array_set(Str8Array *array, u64 index, Str8 item); | ||||
| void wapp_str8_array_append_capped(Str8Array *array, Str8 item); | ||||
| void wapp_str8_array_set(Str8Array *array, u64 index, Str8 *item); | ||||
| void wapp_str8_array_append_capped(Str8Array *array, Str8 *item); | ||||
| void wapp_str8_array_extend_capped(Str8Array *array, const Str8Array *other); | ||||
| void wapp_str8_array_clear(Str8Array *array); | ||||
| Str8 wapp_str8_array_pop(Str8Array *array); | ||||
| void wapp_str8_array_copy_capped(const Str8Array *src, Str8Array *dst); | ||||
| Str8Array *wapp_str8_array_alloc_capacity(const Allocator *allocator, u64 capacity); | ||||
| Str8Array *wapp_str8_array_append_alloc(const Allocator *allocator, Str8Array *array, Str8 item); | ||||
| Str8Array *wapp_str8_array_append_alloc(const Allocator *allocator, Str8Array *array, Str8 *item); | ||||
| Str8Array *wapp_str8_array_extend_alloc(const Allocator *allocator, Str8Array *array, const Str8Array *other); | ||||
| Str8Array *wapp_str8_array_copy_alloc(const Allocator *allocator, const Str8Array *src, Str8Array *dst); | ||||
| Str8 *_str8_array_pop(Str8Array *array); | ||||
| void * *wapp_void_ptr_array_get(const VoidPArray *array, u64 index); | ||||
| void wapp_void_ptr_array_set(VoidPArray *array, u64 index, void * item); | ||||
| void wapp_void_ptr_array_append_capped(VoidPArray *array, void * item); | ||||
| void wapp_void_ptr_array_set(VoidPArray *array, u64 index, void * *item); | ||||
| void wapp_void_ptr_array_append_capped(VoidPArray *array, void * *item); | ||||
| void wapp_void_ptr_array_extend_capped(VoidPArray *array, const VoidPArray *other); | ||||
| void wapp_void_ptr_array_clear(VoidPArray *array); | ||||
| void * wapp_void_ptr_array_pop(VoidPArray *array); | ||||
| void wapp_void_ptr_array_copy_capped(const VoidPArray *src, VoidPArray *dst); | ||||
| VoidPArray *wapp_void_ptr_array_alloc_capacity(const Allocator *allocator, u64 capacity); | ||||
| VoidPArray *wapp_void_ptr_array_append_alloc(const Allocator *allocator, VoidPArray *array, void * item); | ||||
| VoidPArray *wapp_void_ptr_array_append_alloc(const Allocator *allocator, VoidPArray *array, void * *item); | ||||
| VoidPArray *wapp_void_ptr_array_extend_alloc(const Allocator *allocator, VoidPArray *array, const VoidPArray *other); | ||||
| VoidPArray *wapp_void_ptr_array_copy_alloc(const Allocator *allocator, const VoidPArray *src, VoidPArray *dst); | ||||
| void * *_void_ptr_array_pop(VoidPArray *array); | ||||
| bool *wapp_bool_array_get(const BoolArray *array, u64 index); | ||||
| void wapp_bool_array_set(BoolArray *array, u64 index, bool item); | ||||
| void wapp_bool_array_append_capped(BoolArray *array, bool item); | ||||
| void wapp_bool_array_set(BoolArray *array, u64 index, bool *item); | ||||
| void wapp_bool_array_append_capped(BoolArray *array, bool *item); | ||||
| void wapp_bool_array_extend_capped(BoolArray *array, const BoolArray *other); | ||||
| void wapp_bool_array_clear(BoolArray *array); | ||||
| bool wapp_bool_array_pop(BoolArray *array); | ||||
| void wapp_bool_array_copy_capped(const BoolArray *src, BoolArray *dst); | ||||
| BoolArray *wapp_bool_array_alloc_capacity(const Allocator *allocator, u64 capacity); | ||||
| BoolArray *wapp_bool_array_append_alloc(const Allocator *allocator, BoolArray *array, bool item); | ||||
| BoolArray *wapp_bool_array_append_alloc(const Allocator *allocator, BoolArray *array, bool *item); | ||||
| BoolArray *wapp_bool_array_extend_alloc(const Allocator *allocator, BoolArray *array, const BoolArray *other); | ||||
| BoolArray *wapp_bool_array_copy_alloc(const Allocator *allocator, const BoolArray *src, BoolArray *dst); | ||||
| bool *_bool_array_pop(BoolArray *array); | ||||
| char *wapp_char_array_get(const CharArray *array, u64 index); | ||||
| void wapp_char_array_set(CharArray *array, u64 index, char item); | ||||
| void wapp_char_array_append_capped(CharArray *array, char item); | ||||
| void wapp_char_array_set(CharArray *array, u64 index, char *item); | ||||
| void wapp_char_array_append_capped(CharArray *array, char *item); | ||||
| void wapp_char_array_extend_capped(CharArray *array, const CharArray *other); | ||||
| void wapp_char_array_clear(CharArray *array); | ||||
| char wapp_char_array_pop(CharArray *array); | ||||
| void wapp_char_array_copy_capped(const CharArray *src, CharArray *dst); | ||||
| CharArray *wapp_char_array_alloc_capacity(const Allocator *allocator, u64 capacity); | ||||
| CharArray *wapp_char_array_append_alloc(const Allocator *allocator, CharArray *array, char item); | ||||
| CharArray *wapp_char_array_append_alloc(const Allocator *allocator, CharArray *array, char *item); | ||||
| CharArray *wapp_char_array_extend_alloc(const Allocator *allocator, CharArray *array, const CharArray *other); | ||||
| CharArray *wapp_char_array_copy_alloc(const Allocator *allocator, const CharArray *src, CharArray *dst); | ||||
| char *_char_array_pop(CharArray *array); | ||||
| c8 *wapp_c8_array_get(const C8Array *array, u64 index); | ||||
| void wapp_c8_array_set(C8Array *array, u64 index, c8 item); | ||||
| void wapp_c8_array_append_capped(C8Array *array, c8 item); | ||||
| void wapp_c8_array_set(C8Array *array, u64 index, c8 *item); | ||||
| void wapp_c8_array_append_capped(C8Array *array, c8 *item); | ||||
| void wapp_c8_array_extend_capped(C8Array *array, const C8Array *other); | ||||
| void wapp_c8_array_clear(C8Array *array); | ||||
| c8 wapp_c8_array_pop(C8Array *array); | ||||
| void wapp_c8_array_copy_capped(const C8Array *src, C8Array *dst); | ||||
| C8Array *wapp_c8_array_alloc_capacity(const Allocator *allocator, u64 capacity); | ||||
| C8Array *wapp_c8_array_append_alloc(const Allocator *allocator, C8Array *array, c8 item); | ||||
| C8Array *wapp_c8_array_append_alloc(const Allocator *allocator, C8Array *array, c8 *item); | ||||
| C8Array *wapp_c8_array_extend_alloc(const Allocator *allocator, C8Array *array, const C8Array *other); | ||||
| C8Array *wapp_c8_array_copy_alloc(const Allocator *allocator, const C8Array *src, C8Array *dst); | ||||
| c8 *_c8_array_pop(C8Array *array); | ||||
| c16 *wapp_c16_array_get(const C16Array *array, u64 index); | ||||
| void wapp_c16_array_set(C16Array *array, u64 index, c16 item); | ||||
| void wapp_c16_array_append_capped(C16Array *array, c16 item); | ||||
| void wapp_c16_array_set(C16Array *array, u64 index, c16 *item); | ||||
| void wapp_c16_array_append_capped(C16Array *array, c16 *item); | ||||
| void wapp_c16_array_extend_capped(C16Array *array, const C16Array *other); | ||||
| void wapp_c16_array_clear(C16Array *array); | ||||
| c16 wapp_c16_array_pop(C16Array *array); | ||||
| void wapp_c16_array_copy_capped(const C16Array *src, C16Array *dst); | ||||
| C16Array *wapp_c16_array_alloc_capacity(const Allocator *allocator, u64 capacity); | ||||
| C16Array *wapp_c16_array_append_alloc(const Allocator *allocator, C16Array *array, c16 item); | ||||
| C16Array *wapp_c16_array_append_alloc(const Allocator *allocator, C16Array *array, c16 *item); | ||||
| C16Array *wapp_c16_array_extend_alloc(const Allocator *allocator, C16Array *array, const C16Array *other); | ||||
| C16Array *wapp_c16_array_copy_alloc(const Allocator *allocator, const C16Array *src, C16Array *dst); | ||||
| c16 *_c16_array_pop(C16Array *array); | ||||
| c32 *wapp_c32_array_get(const C32Array *array, u64 index); | ||||
| void wapp_c32_array_set(C32Array *array, u64 index, c32 item); | ||||
| void wapp_c32_array_append_capped(C32Array *array, c32 item); | ||||
| void wapp_c32_array_set(C32Array *array, u64 index, c32 *item); | ||||
| void wapp_c32_array_append_capped(C32Array *array, c32 *item); | ||||
| void wapp_c32_array_extend_capped(C32Array *array, const C32Array *other); | ||||
| void wapp_c32_array_clear(C32Array *array); | ||||
| c32 wapp_c32_array_pop(C32Array *array); | ||||
| void wapp_c32_array_copy_capped(const C32Array *src, C32Array *dst); | ||||
| C32Array *wapp_c32_array_alloc_capacity(const Allocator *allocator, u64 capacity); | ||||
| C32Array *wapp_c32_array_append_alloc(const Allocator *allocator, C32Array *array, c32 item); | ||||
| C32Array *wapp_c32_array_append_alloc(const Allocator *allocator, C32Array *array, c32 *item); | ||||
| C32Array *wapp_c32_array_extend_alloc(const Allocator *allocator, C32Array *array, const C32Array *other); | ||||
| C32Array *wapp_c32_array_copy_alloc(const Allocator *allocator, const C32Array *src, C32Array *dst); | ||||
| c32 *_c32_array_pop(C32Array *array); | ||||
| i8 *wapp_i8_array_get(const I8Array *array, u64 index); | ||||
| void wapp_i8_array_set(I8Array *array, u64 index, i8 item); | ||||
| void wapp_i8_array_append_capped(I8Array *array, i8 item); | ||||
| void wapp_i8_array_set(I8Array *array, u64 index, i8 *item); | ||||
| void wapp_i8_array_append_capped(I8Array *array, i8 *item); | ||||
| void wapp_i8_array_extend_capped(I8Array *array, const I8Array *other); | ||||
| void wapp_i8_array_clear(I8Array *array); | ||||
| i8 wapp_i8_array_pop(I8Array *array); | ||||
| void wapp_i8_array_copy_capped(const I8Array *src, I8Array *dst); | ||||
| I8Array *wapp_i8_array_alloc_capacity(const Allocator *allocator, u64 capacity); | ||||
| I8Array *wapp_i8_array_append_alloc(const Allocator *allocator, I8Array *array, i8 item); | ||||
| I8Array *wapp_i8_array_append_alloc(const Allocator *allocator, I8Array *array, i8 *item); | ||||
| I8Array *wapp_i8_array_extend_alloc(const Allocator *allocator, I8Array *array, const I8Array *other); | ||||
| I8Array *wapp_i8_array_copy_alloc(const Allocator *allocator, const I8Array *src, I8Array *dst); | ||||
| i8 *_i8_array_pop(I8Array *array); | ||||
| i16 *wapp_i16_array_get(const I16Array *array, u64 index); | ||||
| void wapp_i16_array_set(I16Array *array, u64 index, i16 item); | ||||
| void wapp_i16_array_append_capped(I16Array *array, i16 item); | ||||
| void wapp_i16_array_set(I16Array *array, u64 index, i16 *item); | ||||
| void wapp_i16_array_append_capped(I16Array *array, i16 *item); | ||||
| void wapp_i16_array_extend_capped(I16Array *array, const I16Array *other); | ||||
| void wapp_i16_array_clear(I16Array *array); | ||||
| i16 wapp_i16_array_pop(I16Array *array); | ||||
| void wapp_i16_array_copy_capped(const I16Array *src, I16Array *dst); | ||||
| I16Array *wapp_i16_array_alloc_capacity(const Allocator *allocator, u64 capacity); | ||||
| I16Array *wapp_i16_array_append_alloc(const Allocator *allocator, I16Array *array, i16 item); | ||||
| I16Array *wapp_i16_array_append_alloc(const Allocator *allocator, I16Array *array, i16 *item); | ||||
| I16Array *wapp_i16_array_extend_alloc(const Allocator *allocator, I16Array *array, const I16Array *other); | ||||
| I16Array *wapp_i16_array_copy_alloc(const Allocator *allocator, const I16Array *src, I16Array *dst); | ||||
| i16 *_i16_array_pop(I16Array *array); | ||||
| i32 *wapp_i32_array_get(const I32Array *array, u64 index); | ||||
| void wapp_i32_array_set(I32Array *array, u64 index, i32 item); | ||||
| void wapp_i32_array_append_capped(I32Array *array, i32 item); | ||||
| void wapp_i32_array_set(I32Array *array, u64 index, i32 *item); | ||||
| void wapp_i32_array_append_capped(I32Array *array, i32 *item); | ||||
| void wapp_i32_array_extend_capped(I32Array *array, const I32Array *other); | ||||
| void wapp_i32_array_clear(I32Array *array); | ||||
| i32 wapp_i32_array_pop(I32Array *array); | ||||
| void wapp_i32_array_copy_capped(const I32Array *src, I32Array *dst); | ||||
| I32Array *wapp_i32_array_alloc_capacity(const Allocator *allocator, u64 capacity); | ||||
| I32Array *wapp_i32_array_append_alloc(const Allocator *allocator, I32Array *array, i32 item); | ||||
| I32Array *wapp_i32_array_append_alloc(const Allocator *allocator, I32Array *array, i32 *item); | ||||
| I32Array *wapp_i32_array_extend_alloc(const Allocator *allocator, I32Array *array, const I32Array *other); | ||||
| I32Array *wapp_i32_array_copy_alloc(const Allocator *allocator, const I32Array *src, I32Array *dst); | ||||
| i32 *_i32_array_pop(I32Array *array); | ||||
| i64 *wapp_i64_array_get(const I64Array *array, u64 index); | ||||
| void wapp_i64_array_set(I64Array *array, u64 index, i64 item); | ||||
| void wapp_i64_array_append_capped(I64Array *array, i64 item); | ||||
| void wapp_i64_array_set(I64Array *array, u64 index, i64 *item); | ||||
| void wapp_i64_array_append_capped(I64Array *array, i64 *item); | ||||
| void wapp_i64_array_extend_capped(I64Array *array, const I64Array *other); | ||||
| void wapp_i64_array_clear(I64Array *array); | ||||
| i64 wapp_i64_array_pop(I64Array *array); | ||||
| void wapp_i64_array_copy_capped(const I64Array *src, I64Array *dst); | ||||
| I64Array *wapp_i64_array_alloc_capacity(const Allocator *allocator, u64 capacity); | ||||
| I64Array *wapp_i64_array_append_alloc(const Allocator *allocator, I64Array *array, i64 item); | ||||
| I64Array *wapp_i64_array_append_alloc(const Allocator *allocator, I64Array *array, i64 *item); | ||||
| I64Array *wapp_i64_array_extend_alloc(const Allocator *allocator, I64Array *array, const I64Array *other); | ||||
| I64Array *wapp_i64_array_copy_alloc(const Allocator *allocator, const I64Array *src, I64Array *dst); | ||||
| i64 *_i64_array_pop(I64Array *array); | ||||
| u8 *wapp_u8_array_get(const U8Array *array, u64 index); | ||||
| void wapp_u8_array_set(U8Array *array, u64 index, u8 item); | ||||
| void wapp_u8_array_append_capped(U8Array *array, u8 item); | ||||
| void wapp_u8_array_set(U8Array *array, u64 index, u8 *item); | ||||
| void wapp_u8_array_append_capped(U8Array *array, u8 *item); | ||||
| void wapp_u8_array_extend_capped(U8Array *array, const U8Array *other); | ||||
| void wapp_u8_array_clear(U8Array *array); | ||||
| u8 wapp_u8_array_pop(U8Array *array); | ||||
| void wapp_u8_array_copy_capped(const U8Array *src, U8Array *dst); | ||||
| U8Array *wapp_u8_array_alloc_capacity(const Allocator *allocator, u64 capacity); | ||||
| U8Array *wapp_u8_array_append_alloc(const Allocator *allocator, U8Array *array, u8 item); | ||||
| U8Array *wapp_u8_array_append_alloc(const Allocator *allocator, U8Array *array, u8 *item); | ||||
| U8Array *wapp_u8_array_extend_alloc(const Allocator *allocator, U8Array *array, const U8Array *other); | ||||
| U8Array *wapp_u8_array_copy_alloc(const Allocator *allocator, const U8Array *src, U8Array *dst); | ||||
| u8 *_u8_array_pop(U8Array *array); | ||||
| u16 *wapp_u16_array_get(const U16Array *array, u64 index); | ||||
| void wapp_u16_array_set(U16Array *array, u64 index, u16 item); | ||||
| void wapp_u16_array_append_capped(U16Array *array, u16 item); | ||||
| void wapp_u16_array_set(U16Array *array, u64 index, u16 *item); | ||||
| void wapp_u16_array_append_capped(U16Array *array, u16 *item); | ||||
| void wapp_u16_array_extend_capped(U16Array *array, const U16Array *other); | ||||
| void wapp_u16_array_clear(U16Array *array); | ||||
| u16 wapp_u16_array_pop(U16Array *array); | ||||
| void wapp_u16_array_copy_capped(const U16Array *src, U16Array *dst); | ||||
| U16Array *wapp_u16_array_alloc_capacity(const Allocator *allocator, u64 capacity); | ||||
| U16Array *wapp_u16_array_append_alloc(const Allocator *allocator, U16Array *array, u16 item); | ||||
| U16Array *wapp_u16_array_append_alloc(const Allocator *allocator, U16Array *array, u16 *item); | ||||
| U16Array *wapp_u16_array_extend_alloc(const Allocator *allocator, U16Array *array, const U16Array *other); | ||||
| U16Array *wapp_u16_array_copy_alloc(const Allocator *allocator, const U16Array *src, U16Array *dst); | ||||
| u16 *_u16_array_pop(U16Array *array); | ||||
| u32 *wapp_u32_array_get(const U32Array *array, u64 index); | ||||
| void wapp_u32_array_set(U32Array *array, u64 index, u32 item); | ||||
| void wapp_u32_array_append_capped(U32Array *array, u32 item); | ||||
| void wapp_u32_array_set(U32Array *array, u64 index, u32 *item); | ||||
| void wapp_u32_array_append_capped(U32Array *array, u32 *item); | ||||
| void wapp_u32_array_extend_capped(U32Array *array, const U32Array *other); | ||||
| void wapp_u32_array_clear(U32Array *array); | ||||
| u32 wapp_u32_array_pop(U32Array *array); | ||||
| void wapp_u32_array_copy_capped(const U32Array *src, U32Array *dst); | ||||
| U32Array *wapp_u32_array_alloc_capacity(const Allocator *allocator, u64 capacity); | ||||
| U32Array *wapp_u32_array_append_alloc(const Allocator *allocator, U32Array *array, u32 item); | ||||
| U32Array *wapp_u32_array_append_alloc(const Allocator *allocator, U32Array *array, u32 *item); | ||||
| U32Array *wapp_u32_array_extend_alloc(const Allocator *allocator, U32Array *array, const U32Array *other); | ||||
| U32Array *wapp_u32_array_copy_alloc(const Allocator *allocator, const U32Array *src, U32Array *dst); | ||||
| u32 *_u32_array_pop(U32Array *array); | ||||
| u64 *wapp_u64_array_get(const U64Array *array, u64 index); | ||||
| void wapp_u64_array_set(U64Array *array, u64 index, u64 item); | ||||
| void wapp_u64_array_append_capped(U64Array *array, u64 item); | ||||
| void wapp_u64_array_set(U64Array *array, u64 index, u64 *item); | ||||
| void wapp_u64_array_append_capped(U64Array *array, u64 *item); | ||||
| void wapp_u64_array_extend_capped(U64Array *array, const U64Array *other); | ||||
| void wapp_u64_array_clear(U64Array *array); | ||||
| u64 wapp_u64_array_pop(U64Array *array); | ||||
| void wapp_u64_array_copy_capped(const U64Array *src, U64Array *dst); | ||||
| U64Array *wapp_u64_array_alloc_capacity(const Allocator *allocator, u64 capacity); | ||||
| U64Array *wapp_u64_array_append_alloc(const Allocator *allocator, U64Array *array, u64 item); | ||||
| U64Array *wapp_u64_array_append_alloc(const Allocator *allocator, U64Array *array, u64 *item); | ||||
| U64Array *wapp_u64_array_extend_alloc(const Allocator *allocator, U64Array *array, const U64Array *other); | ||||
| U64Array *wapp_u64_array_copy_alloc(const Allocator *allocator, const U64Array *src, U64Array *dst); | ||||
| u64 *_u64_array_pop(U64Array *array); | ||||
| f32 *wapp_f32_array_get(const F32Array *array, u64 index); | ||||
| void wapp_f32_array_set(F32Array *array, u64 index, f32 item); | ||||
| void wapp_f32_array_append_capped(F32Array *array, f32 item); | ||||
| void wapp_f32_array_set(F32Array *array, u64 index, f32 *item); | ||||
| void wapp_f32_array_append_capped(F32Array *array, f32 *item); | ||||
| void wapp_f32_array_extend_capped(F32Array *array, const F32Array *other); | ||||
| void wapp_f32_array_clear(F32Array *array); | ||||
| f32 wapp_f32_array_pop(F32Array *array); | ||||
| void wapp_f32_array_copy_capped(const F32Array *src, F32Array *dst); | ||||
| F32Array *wapp_f32_array_alloc_capacity(const Allocator *allocator, u64 capacity); | ||||
| F32Array *wapp_f32_array_append_alloc(const Allocator *allocator, F32Array *array, f32 item); | ||||
| F32Array *wapp_f32_array_append_alloc(const Allocator *allocator, F32Array *array, f32 *item); | ||||
| F32Array *wapp_f32_array_extend_alloc(const Allocator *allocator, F32Array *array, const F32Array *other); | ||||
| F32Array *wapp_f32_array_copy_alloc(const Allocator *allocator, const F32Array *src, F32Array *dst); | ||||
| f32 *_f32_array_pop(F32Array *array); | ||||
| f64 *wapp_f64_array_get(const F64Array *array, u64 index); | ||||
| void wapp_f64_array_set(F64Array *array, u64 index, f64 item); | ||||
| void wapp_f64_array_append_capped(F64Array *array, f64 item); | ||||
| void wapp_f64_array_set(F64Array *array, u64 index, f64 *item); | ||||
| void wapp_f64_array_append_capped(F64Array *array, f64 *item); | ||||
| void wapp_f64_array_extend_capped(F64Array *array, const F64Array *other); | ||||
| void wapp_f64_array_clear(F64Array *array); | ||||
| f64 wapp_f64_array_pop(F64Array *array); | ||||
| void wapp_f64_array_copy_capped(const F64Array *src, F64Array *dst); | ||||
| F64Array *wapp_f64_array_alloc_capacity(const Allocator *allocator, u64 capacity); | ||||
| F64Array *wapp_f64_array_append_alloc(const Allocator *allocator, F64Array *array, f64 item); | ||||
| F64Array *wapp_f64_array_append_alloc(const Allocator *allocator, F64Array *array, f64 *item); | ||||
| F64Array *wapp_f64_array_extend_alloc(const Allocator *allocator, F64Array *array, const F64Array *other); | ||||
| F64Array *wapp_f64_array_copy_alloc(const Allocator *allocator, const F64Array *src, F64Array *dst); | ||||
| f64 *_f64_array_pop(F64Array *array); | ||||
| f128 *wapp_f128_array_get(const F128Array *array, u64 index); | ||||
| void wapp_f128_array_set(F128Array *array, u64 index, f128 item); | ||||
| void wapp_f128_array_append_capped(F128Array *array, f128 item); | ||||
| void wapp_f128_array_set(F128Array *array, u64 index, f128 *item); | ||||
| void wapp_f128_array_append_capped(F128Array *array, f128 *item); | ||||
| void wapp_f128_array_extend_capped(F128Array *array, const F128Array *other); | ||||
| void wapp_f128_array_clear(F128Array *array); | ||||
| f128 wapp_f128_array_pop(F128Array *array); | ||||
| void wapp_f128_array_copy_capped(const F128Array *src, F128Array *dst); | ||||
| F128Array *wapp_f128_array_alloc_capacity(const Allocator *allocator, u64 capacity); | ||||
| F128Array *wapp_f128_array_append_alloc(const Allocator *allocator, F128Array *array, f128 item); | ||||
| F128Array *wapp_f128_array_append_alloc(const Allocator *allocator, F128Array *array, f128 *item); | ||||
| F128Array *wapp_f128_array_extend_alloc(const Allocator *allocator, F128Array *array, const F128Array *other); | ||||
| F128Array *wapp_f128_array_copy_alloc(const Allocator *allocator, const F128Array *src, F128Array *dst); | ||||
| f128 *_f128_array_pop(F128Array *array); | ||||
| iptr *wapp_iptr_array_get(const IptrArray *array, u64 index); | ||||
| void wapp_iptr_array_set(IptrArray *array, u64 index, iptr item); | ||||
| void wapp_iptr_array_append_capped(IptrArray *array, iptr item); | ||||
| void wapp_iptr_array_set(IptrArray *array, u64 index, iptr *item); | ||||
| void wapp_iptr_array_append_capped(IptrArray *array, iptr *item); | ||||
| void wapp_iptr_array_extend_capped(IptrArray *array, const IptrArray *other); | ||||
| void wapp_iptr_array_clear(IptrArray *array); | ||||
| iptr wapp_iptr_array_pop(IptrArray *array); | ||||
| void wapp_iptr_array_copy_capped(const IptrArray *src, IptrArray *dst); | ||||
| IptrArray *wapp_iptr_array_alloc_capacity(const Allocator *allocator, u64 capacity); | ||||
| IptrArray *wapp_iptr_array_append_alloc(const Allocator *allocator, IptrArray *array, iptr item); | ||||
| IptrArray *wapp_iptr_array_append_alloc(const Allocator *allocator, IptrArray *array, iptr *item); | ||||
| IptrArray *wapp_iptr_array_extend_alloc(const Allocator *allocator, IptrArray *array, const IptrArray *other); | ||||
| IptrArray *wapp_iptr_array_copy_alloc(const Allocator *allocator, const IptrArray *src, IptrArray *dst); | ||||
| iptr *_iptr_array_pop(IptrArray *array); | ||||
| uptr *wapp_uptr_array_get(const UptrArray *array, u64 index); | ||||
| void wapp_uptr_array_set(UptrArray *array, u64 index, uptr item); | ||||
| void wapp_uptr_array_append_capped(UptrArray *array, uptr item); | ||||
| void wapp_uptr_array_set(UptrArray *array, u64 index, uptr *item); | ||||
| void wapp_uptr_array_append_capped(UptrArray *array, uptr *item); | ||||
| void wapp_uptr_array_extend_capped(UptrArray *array, const UptrArray *other); | ||||
| void wapp_uptr_array_clear(UptrArray *array); | ||||
| uptr wapp_uptr_array_pop(UptrArray *array); | ||||
| void wapp_uptr_array_copy_capped(const UptrArray *src, UptrArray *dst); | ||||
| UptrArray *wapp_uptr_array_alloc_capacity(const Allocator *allocator, u64 capacity); | ||||
| UptrArray *wapp_uptr_array_append_alloc(const Allocator *allocator, UptrArray *array, uptr item); | ||||
| UptrArray *wapp_uptr_array_append_alloc(const Allocator *allocator, UptrArray *array, uptr *item); | ||||
| UptrArray *wapp_uptr_array_extend_alloc(const Allocator *allocator, UptrArray *array, const UptrArray *other); | ||||
| UptrArray *wapp_uptr_array_copy_alloc(const Allocator *allocator, const UptrArray *src, UptrArray *dst); | ||||
| uptr *_uptr_array_pop(UptrArray *array); | ||||
| VoidPArray *_array_alloc_capacity(const Allocator *allocator, u64 capacity, u64 item_size); | ||||
|  | ||||
| #endif // !ARRAY_H | ||||
|   | ||||
		Reference in New Issue
	
	Block a user