feat!: make all functions have return values

This commit is contained in:
2025-09-05 18:38:21 -04:00
parent 1c03cac31d
commit 1f7cba9338
2 changed files with 37 additions and 13 deletions

40
ds.c
View File

@@ -27,33 +27,45 @@ ds_dll_t
return node;
}
void
int
ds_sll_insert(ds_sll_t *ll, void *data)
{
if (!ll) {
return -1;
}
ds_ll_foreach(ds_sll_t, ll) {
if (!cur->data) {
cur->data = data;
return;
return 0;
} else if (!cur->next) {
cur->next = ds_sll_new_node(data);
return;
}
return 0;
}
}
void
return -1;
}
int
ds_dll_insert(ds_dll_t *ll, void *data)
{
if (!ll) {
return -1;
}
ds_ll_foreach(ds_dll_t, ll) {
if (!cur->data) {
cur->data = data;
return;
return 0;
} else if (!cur->next) {
cur->next = ds_dll_new_node(data);
cur->next->prev = cur;
return;
return 0;
}
}
return -1;
}
void
@@ -152,7 +164,7 @@ ds_hmp_t
return hmp;
}
void
int
ds_hmp_free(ds_hmp_t **hmp, void kv_callback(_ds_hmp_kv_t *kv))
{
int i;
@@ -160,7 +172,7 @@ ds_hmp_free(ds_hmp_t **hmp, void kv_callback(_ds_hmp_kv_t *kv))
ds_sll_t *ll;
if (!hmp || !*hmp) {
return;
return -1;
}
for (i = 0; i < (*hmp)->data_len; i++) {
@@ -179,6 +191,8 @@ ds_hmp_free(ds_hmp_t **hmp, void kv_callback(_ds_hmp_kv_t *kv))
}
free((*hmp)->data);
free(*hmp);
return 0;
}
int
@@ -194,13 +208,17 @@ _ds_hmp_gen_hash(char *str)
return hash;
}
void
int
ds_hmp_insert(ds_hmp_t *hmp, char *key, void *data)
{
_ds_hmp_kv_t *kv;
ds_sll_t *ll;
unsigned hash_pos;
if (!hmp || !key || !data) {
return -1;
}
kv = malloc(sizeof(_ds_hmp_kv_t));
kv->key = key;
kv->val = data;
@@ -213,6 +231,8 @@ ds_hmp_insert(ds_hmp_t *hmp, char *key, void *data)
/* get the ll and put the data into it */
ll = hmp->data[hash_pos];
ds_sll_insert(ll, kv);
return 0;
}
void

12
ds.h
View File

@@ -46,8 +46,9 @@ ds_dll_t *ds_dll_new_node(void *data);
*
* @param ll singly linked list
* @param data data you want to add
* @return 0 on success
*/
void ds_sll_insert(ds_sll_t *ll, void *data);
int ds_sll_insert(ds_sll_t *ll, void *data);
/**
* @brief data to insert into a doubly linked list. This will use
@@ -55,8 +56,9 @@ void ds_sll_insert(ds_sll_t *ll, void *data);
*
* @param ll doubly linked list
* @param data data you want to add
* @return 0 on success
*/
void ds_dll_insert(ds_dll_t *ll, void *data);
int ds_dll_insert(ds_dll_t *ll, void *data);
/**
* @brief remove an index from a singly linked list
@@ -88,8 +90,9 @@ ds_hmp_t *ds_hmp_init(int data_len);
* @brief free all data allocated by ds_hmp_init and ds_hmp_insert
*
* @param hmp pointer to the hashmap
* @return 0 on success
*/
void ds_hmp_free(ds_hmp_t **hmp, void kv_callback(_ds_hmp_kv_t *kv));
int ds_hmp_free(ds_hmp_t **hmp, void kv_callback(_ds_hmp_kv_t *kv));
/**
* @brief generate a numerical hash from a given string. You shouldn't need to
@@ -107,8 +110,9 @@ int _ds_hmp_gen_hash(char *str);
* @param hmp the hashmap to insert into
* @param key the key
* @param data the data
* @return 0 on success
*/
void ds_hmp_insert(ds_hmp_t *hmp, char *key, void *data);
int ds_hmp_insert(ds_hmp_t *hmp, char *key, void *data);
/**
* @brief get something from a hashmap using it's key