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; return node;
} }
void int
ds_sll_insert(ds_sll_t *ll, void *data) ds_sll_insert(ds_sll_t *ll, void *data)
{ {
if (!ll) {
return -1;
}
ds_ll_foreach(ds_sll_t, ll) { ds_ll_foreach(ds_sll_t, ll) {
if (!cur->data) { if (!cur->data) {
cur->data = data; cur->data = data;
return; return 0;
} else if (!cur->next) { } else if (!cur->next) {
cur->next = ds_sll_new_node(data); cur->next = ds_sll_new_node(data);
return; return 0;
}
} }
} }
void return -1;
}
int
ds_dll_insert(ds_dll_t *ll, void *data) ds_dll_insert(ds_dll_t *ll, void *data)
{ {
if (!ll) {
return -1;
}
ds_ll_foreach(ds_dll_t, ll) { ds_ll_foreach(ds_dll_t, ll) {
if (!cur->data) { if (!cur->data) {
cur->data = data; cur->data = data;
return; return 0;
} else if (!cur->next) { } else if (!cur->next) {
cur->next = ds_dll_new_node(data); cur->next = ds_dll_new_node(data);
cur->next->prev = cur; cur->next->prev = cur;
return; return 0;
} }
} }
return -1;
} }
void void
@@ -152,7 +164,7 @@ ds_hmp_t
return hmp; return hmp;
} }
void int
ds_hmp_free(ds_hmp_t **hmp, void kv_callback(_ds_hmp_kv_t *kv)) ds_hmp_free(ds_hmp_t **hmp, void kv_callback(_ds_hmp_kv_t *kv))
{ {
int i; 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; ds_sll_t *ll;
if (!hmp || !*hmp) { if (!hmp || !*hmp) {
return; return -1;
} }
for (i = 0; i < (*hmp)->data_len; i++) { 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)->data);
free(*hmp); free(*hmp);
return 0;
} }
int int
@@ -194,13 +208,17 @@ _ds_hmp_gen_hash(char *str)
return hash; return hash;
} }
void int
ds_hmp_insert(ds_hmp_t *hmp, char *key, void *data) ds_hmp_insert(ds_hmp_t *hmp, char *key, void *data)
{ {
_ds_hmp_kv_t *kv; _ds_hmp_kv_t *kv;
ds_sll_t *ll; ds_sll_t *ll;
unsigned hash_pos; unsigned hash_pos;
if (!hmp || !key || !data) {
return -1;
}
kv = malloc(sizeof(_ds_hmp_kv_t)); kv = malloc(sizeof(_ds_hmp_kv_t));
kv->key = key; kv->key = key;
kv->val = data; 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 */ /* get the ll and put the data into it */
ll = hmp->data[hash_pos]; ll = hmp->data[hash_pos];
ds_sll_insert(ll, kv); ds_sll_insert(ll, kv);
return 0;
} }
void 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 ll singly linked list
* @param data data you want to add * @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 * @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 ll doubly linked list
* @param data data you want to add * @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 * @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 * @brief free all data allocated by ds_hmp_init and ds_hmp_insert
* *
* @param hmp pointer to the hashmap * @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 * @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 hmp the hashmap to insert into
* @param key the key * @param key the key
* @param data the data * @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 * @brief get something from a hashmap using it's key