aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/moslib/ds/array.h12
-rw-r--r--include/moslib/ds/hashmap.h17
-rw-r--r--include/moslib/string.h6
3 files changed, 18 insertions, 17 deletions
diff --git a/include/moslib/ds/array.h b/include/moslib/ds/array.h
index d71e434..36acc03 100644
--- a/include/moslib/ds/array.h
+++ b/include/moslib/ds/array.h
@@ -472,7 +472,7 @@
//
// Returns:
// length of the array
-extern size_t mos_arr_len(void *arr);
+extern size_t mos_arr_len(const void *arr);
// Set the length of the array
// If it's bigger than current length - it will zero new items
@@ -497,7 +497,7 @@ extern size_t mos_arr_len(void *arr);
//
// Returns:
// capacity of the array
-extern size_t mos_arr_cap(void *arr);
+extern size_t mos_arr_cap(const void *arr);
// Set the capacity of the array
// If it's lower than current length - it will set the capacity equal to length
@@ -526,10 +526,10 @@ extern void mos_arr_free(void *arr);
extern void mos_arr_append_fn(void *p_arr, size_t el_size, size_t init_cap);
extern void mos_arr_insert_fn(void *p_arr, size_t i, size_t el_size, size_t init_cap);
extern void mos_arr_put_fn(void *p_arr, size_t i, size_t el_size, size_t init_cap);
-extern size_t mos_arr_append_n_fn(void *p_arr, void *items, size_t n, size_t el_size, size_t init_cap);
-extern size_t mos_arr_insert_n_fn(void *p_arr, size_t i, void *items, size_t n, size_t el_size, size_t init_cap);
-extern size_t mos_arr_put_n_fn(void *p_arr, size_t i, void *items, size_t n, size_t el_size, size_t init_cap);
-extern size_t mos_arr_concat_fn(void *p_arr, void *arr2, size_t el_size, size_t init_cap);
+extern size_t mos_arr_append_n_fn(void *p_arr, const void *items, size_t n, size_t el_size, size_t init_cap);
+extern size_t mos_arr_insert_n_fn(void *p_arr, size_t i, const void *items, size_t n, size_t el_size, size_t init_cap);
+extern size_t mos_arr_put_n_fn(void *p_arr, size_t i, const void *items, size_t n, size_t el_size, size_t init_cap);
+extern size_t mos_arr_concat_fn(void *p_arr, const void *arr2, size_t el_size, size_t init_cap);
extern size_t mos_arr_del_fn(void *arr, size_t i, size_t el_size);
extern size_t mos_arr_del_n_fn(void *arr, size_t i, size_t n, size_t el_size);
extern size_t mos_arr_del_left_fn(void *arr, size_t n, size_t el_size);
diff --git a/include/moslib/ds/hashmap.h b/include/moslib/ds/hashmap.h
index f366393..c4af82d 100644
--- a/include/moslib/ds/hashmap.h
+++ b/include/moslib/ds/hashmap.h
@@ -27,11 +27,12 @@
//
// It accepts these optional arguments:
//
-// .key (enum {DEFAULT, STR, SS}) - use predefined hash and equals functions
-// for C strings or StringSlice
-// .hash (uint32_t (*)(void *key)) - user defined hash function
-// .eq (int (*)(void *key1, void *key2)) - user defined equals function
-// should return 1 if keys are equal, 0 otherwise
+// .key (enum {DEFAULT, STR, SS}) - use predefined hash and equals functions
+// for C strings or StringSlice
+// .hash (uint32_t (*)(const void *key)) - user defined hash function
+// .eq (int (*)(const void *key1, cosnt void *key2)) - user defined equals function
+// should return 1 if keys are equal,
+// 0 otherwise
//
// .hash and .eq will overwrite the functions set by .key.
//
@@ -45,7 +46,7 @@
// HM_DEF(ss_float, StringSlice, float);
// ss_float *hm2 = hm_new(.key = SS);
//
-// uint32_t hash_int(void *key) {
+// uint32_t hash_int(const void *key) {
// return (uint32_t)(*(int *)key);
// }
// HM_DEF(int_int, int, int);
@@ -120,8 +121,8 @@
typedef struct {
enum { DEFAULT, STR, SS } key;
- uint32_t (*hash)(void *key);
- int (*eq)(void *key1, void *key2);
+ uint32_t (*hash)(const void *key);
+ int (*eq)(const void *key1, const void *key2);
} MosHmInitArgs;
// clang-format off
diff --git a/include/moslib/string.h b/include/moslib/string.h
index cbba69f..165bdf7 100644
--- a/include/moslib/string.h
+++ b/include/moslib/string.h
@@ -231,7 +231,7 @@ extern MosStringSlice mos_ss_copy(MosStringSlice ss);
//
// Returns:
// a newly created string slice
-extern MosStringSlice mos_ss_from_arr(char *arr);
+extern MosStringSlice mos_ss_from_arr(const char *arr);
// Create a string slice from two variables representing it
//
@@ -433,7 +433,7 @@ extern int mos_ss_del_suffix(MosStringSlice *ss, MosStringSlice suffix);
//
// Returns:
// 1 if the prefix was deleted, 0 otherwise
-extern int mos_ss_del_prefix_str(MosStringSlice *ss, char *prefix);
+extern int mos_ss_del_prefix_str(MosStringSlice *ss, const char *prefix);
// Delete the string suffix from a slice
// If it's not the suffix, do nothing
@@ -447,7 +447,7 @@ extern int mos_ss_del_prefix_str(MosStringSlice *ss, char *prefix);
//
// Returns:
// 1 if the suffix was deleted, 0 otherwise
-extern int mos_ss_del_suffix_str(MosStringSlice *ss, char *suffix);
+extern int mos_ss_del_suffix_str(MosStringSlice *ss, const char *suffix);
// Split a slice by a character delimiter
// If the delimiter is not found - treats the end of the slice as the delimiter