27 Commits

Author SHA1 Message Date
6bf47f0ca6 Refactor to use portable minimum-width integers.
The signed and unsigned fixed-width integers (int32_t, uint32_t etc.) are optional
in C99 (and above). Use the non-optional minimum-width integers (int_fast32_t, uint_fast32_t and int_least32_t, uint_least32_t etc.) instead.

To simulate unsigned wrap-around, use the GUF_UWRAP macros in guf_common.h

cf. https://en.cppreference.com/w/c/types/integer (last-retrieved: 2025-05-18)
2025-12-23 14:11:06 +01:00
e2036b768e Fix guf_dict_init_with_capacity kv_idx_cap calculation 2025-12-23 14:11:05 +01:00
883154f2ab Add guf_dict_shrink_capacity 2025-12-23 14:11:05 +01:00
b1a5094d2b Add more dict functions 2025-12-23 14:11:05 +01:00
ce4b25318d Add comments 2025-12-23 14:11:05 +01:00
eed418e6cd Add changeable load factor 2025-12-23 14:11:05 +01:00
8b696b31fc Add move- and copy ctors to dict and guf_str 2025-12-23 14:11:05 +01:00
e1bc585f68 Use SIZE_MAX instead of SIZE_T_MAX 2025-12-23 14:11:05 +01:00
25cf7f17b7 Fix dict asserts 2025-12-23 14:11:05 +01:00
e1af4f76a7 Replace puts with fputs in guf_err_to_str 2025-12-23 14:11:05 +01:00
ec9cd97631 Pass key_hash to guf_dict_find_idx to avoid re-computation 2025-12-23 14:11:05 +01:00
18f4496204 Fix GUF_DICT_64_BIT_IDX and guf_dict_max_capacity() 2025-12-23 14:11:05 +01:00
f3f7cec5f4 Use single u32/u64 as GUF_DICT_KV_META_T instead of two 2025-12-23 14:11:05 +01:00
5d8fa1cc62 Fix allocation overflow for guf_dbuf and guf_dict
(Implement GUF_ALLOC_MAX_BYTES and GUF_ALLOC_MAX_CAPACITY).
2025-12-23 14:11:05 +01:00
93e9603218 Fix guf_dict size types 2025-12-23 14:11:05 +01:00
2bf683906b Add more dict tests 2025-12-23 14:11:04 +01:00
8197a5f45f Add dict_erase tests 2025-12-23 14:11:04 +01:00
98774f842f Fix guf_dict probing 2025-12-23 14:11:04 +01:00
6bed0d7616 Fix guf_dict growth bug 2025-12-23 14:11:04 +01:00
467f9be00a Refactor 2025-12-23 14:11:04 +01:00
27d0cc65e4 Add C++ tests 2025-12-23 14:11:04 +01:00
0e4e3f392c Improve iterator functions 2025-12-23 14:11:04 +01:00
df43178b15 Implement guf_dict 2025-12-23 14:11:04 +01:00
099ee09a94 Work on guf_dict 2025-12-23 14:11:04 +01:00
42f6a4e20d Major refactor 2025-12-23 14:11:04 +01:00
44ee8494d7 Use macro templates instead of void pointers 2025-12-23 14:11:04 +01:00
jun
0751726fc5 Initial commit 2025-01-03 10:38:57 +01:00