renamed some collection functions
This commit is contained in:
parent
eb6432470c
commit
51980ebb0b
@ -26,7 +26,9 @@ typedef struct HashMap_ {
|
|||||||
u16 height_n;
|
u16 height_n;
|
||||||
} HashMap_;
|
} HashMap_;
|
||||||
|
|
||||||
void HashMap_create(HashMap_* ptr, u32 value_t_size, FreeFunction NULLABLE(value_destructor));
|
//TODO: standartize constructor function names across tlibc
|
||||||
|
#define HashMap_create(PTR, T, VALUE_DESTRUCTOR) HashMap_create_size(PTR, sizeof(T), VALUE_DESTRUCTOR)
|
||||||
|
void HashMap_create_size(HashMap_* ptr, u32 value_t_size, FreeFunction NULLABLE(value_destructor));
|
||||||
void HashMap_destroy(HashMap_* ptr);
|
void HashMap_destroy(HashMap_* ptr);
|
||||||
void* NULLABLE(HashMap_tryGetPtr)(HashMap_* ptr, str key);
|
void* NULLABLE(HashMap_tryGetPtr)(HashMap_* ptr, str key);
|
||||||
bool HashMap_tryPush(HashMap_* ptr, str key, void* value_ptr);
|
bool HashMap_tryPush(HashMap_* ptr, str key, void* value_ptr);
|
||||||
|
|||||||
@ -9,7 +9,7 @@ typedef struct List_ {
|
|||||||
u32 allocated_size;
|
u32 allocated_size;
|
||||||
} List_;
|
} List_;
|
||||||
|
|
||||||
#define List_construct(DATA_PTR, T, OCCUPIED_COUNT, ALLOCATED_COUNT) \
|
#define List_construct(T, DATA_PTR, OCCUPIED_COUNT, ALLOCATED_COUNT) \
|
||||||
List_construct_size(DATA_PTR, (OCCUPIED_COUNT) * sizeof(T), (ALLOCATED_COUNT) * sizeof(T))
|
List_construct_size(DATA_PTR, (OCCUPIED_COUNT) * sizeof(T), (ALLOCATED_COUNT) * sizeof(T))
|
||||||
|
|
||||||
static inline List_ List_construct_size(void* data_ptr, u32 occupied_size, u32 allocated_size) {
|
static inline List_ List_construct_size(void* data_ptr, u32 occupied_size, u32 allocated_size) {
|
||||||
@ -19,8 +19,8 @@ static inline List_ List_construct_size(void* data_ptr, u32 occupied_size, u32 a
|
|||||||
#define List_alloc(T, INITIAL_COUNT) List_alloc_size((INITIAL_COUNT) * sizeof(T))
|
#define List_alloc(T, INITIAL_COUNT) List_alloc_size((INITIAL_COUNT) * sizeof(T))
|
||||||
List_ List_alloc_size(u32 initial_size);
|
List_ List_alloc_size(u32 initial_size);
|
||||||
|
|
||||||
void* List_expand(List_* ptr, u32 expansion_size);
|
void* List_expand_size(List_* ptr, u32 expansion_size);
|
||||||
#define List_push(L, T, VALUE) *(T*)(List_expand(L, sizeof(T))) = VALUE
|
#define List_push(L, T, VALUE) *(T*)(List_expand_size(L, sizeof(T))) = VALUE
|
||||||
#define List_pushMany(L, T, VALUES_PTR, COUNT) List_push_size(L, VALUES_PTR, (COUNT) * sizeof(T))
|
#define List_pushMany(L, T, VALUES_PTR, COUNT) List_push_size(L, VALUES_PTR, (COUNT) * sizeof(T))
|
||||||
void List_push_size(List_* ptr, void* values, u32 size);
|
void List_push_size(List_* ptr, void* values, u32 size);
|
||||||
|
|
||||||
|
|||||||
@ -12,7 +12,8 @@ static const Array(u32) __HashMap_heights = ARRAY(u32, {
|
|||||||
8388617, 16777213, 33554467, 67108859, 134217757, 268435493
|
8388617, 16777213, 33554467, 67108859, 134217757, 268435493
|
||||||
});
|
});
|
||||||
|
|
||||||
void HashMap_create(HashMap_* ptr, u32 value_t_size, FreeFunction NULLABLE(value_destructor)){
|
|
||||||
|
void HashMap_create_size(HashMap_* ptr, u32 value_t_size, FreeFunction NULLABLE(value_destructor)){
|
||||||
ptr->value_t_size = value_t_size;
|
ptr->value_t_size = value_t_size;
|
||||||
ptr->value_destructor = value_destructor;
|
ptr->value_destructor = value_destructor;
|
||||||
ptr->height_n = 0;
|
ptr->height_n = 0;
|
||||||
|
|||||||
@ -7,7 +7,7 @@ List_ List_alloc_size(u32 initial_size){
|
|||||||
return List_construct_size(malloc(allocated_size), 0, allocated_size);
|
return List_construct_size(malloc(allocated_size), 0, allocated_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
void* List_expand(List_* ptr, u32 expansion_size){
|
void* List_expand_size(List_* ptr, u32 expansion_size){
|
||||||
u32 occupied_size = ptr->size;
|
u32 occupied_size = ptr->size;
|
||||||
u32 expanded_alloc_size = ptr->allocated_size;
|
u32 expanded_alloc_size = ptr->allocated_size;
|
||||||
if(expanded_alloc_size == 0)
|
if(expanded_alloc_size == 0)
|
||||||
@ -23,7 +23,7 @@ void* List_expand(List_* ptr, u32 expansion_size){
|
|||||||
}
|
}
|
||||||
|
|
||||||
void List_push_size(List_* ptr, void* values, u32 size){
|
void List_push_size(List_* ptr, void* values, u32 size){
|
||||||
void* empty_cell_ptr = List_expand(ptr, size);
|
void* empty_cell_ptr = List_expand_size(ptr, size);
|
||||||
memcpy(empty_cell_ptr, values, size);
|
memcpy(empty_cell_ptr, values, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user