TODO Patch - Changes that can be released by a patch version Minor - Changes that require a bit more time than a simple patch Major - 1.0.0 version or breaking changes The library follows https://semver.org/ Check out CHANGELOG [/] - In Progress [X] - Finished #!! Next Patch ----------------------------------------------------------------- [ ] Fix BitSet, using capacity vs. counter [ ] #12 - Fix the collections that depend on ITER #!! Major ---------------------------------------------------------------------- [ ] Stabilize the library [ ] Add INT library [ ] Add SAC library [ ] Add TSC library [ ] Separate inner Data Structure implementation from the Collection's one [ ] CMC_NAMES - Full customization of function names (see CMC_CAMEL_CASE) [\] Tests [\] Documentation #!! Minor ---------------------------------------------------------------------- [ ] #13 - Properly implement HashBidiMap iterator [ ] #10 - Fix Benchmarks and Examples [ ] More SortedList functions [ ] BidiMap's _is_mapping() to check if a mapping K <=> V exists [ ] New asserts - _array_int(), _array_not_in() and str [ ] Add Stack's _peek() and _top() (get by value, get by pointer) [ ] CMC_TIMED for timed blocks [ ] _iter_at() iterator #!! Patch ---------------------------------------------------------------------- [ ] MultiSets replace existing value with the new added one #!! Considerations ------------------------------------------------------------- [ ] rand.h utility [ ] Redo `while (true)` in hashtables' _insert() [ ] Add to_array and from_array functions [ ] Serialization [ ] save {all} [ ] load {all} [ ] serialize {all} [ ] deserialize {all} [ ] Zip Iterators [ ] Consumer Iterators #!! Optimizations -------------------------------------------------------------- [ ] Use binary search to find optimum hashtable prime size inside impl_calculate_size #!! Done ----------------------------------------------------------------------- [X] Remove PUBLIC and PRIVATE [X] Utility [X] assert.h [X] foreach.h [X] log.h [X] test.h [X] timer.h [X] Extra Collections [X] Add MultiSet [X] Add MultiMap [X] Add IntervalHeap [X] Add SortedList [X] Add BidiMap [X] Add functions [X] update {hashmap, treemap, multimap} [X] set {hashmap, treemap, multimap} [X] to_string {all} [X] iter_advance {all} (iterators) [X] iter_rewind {all} (iterators) [X] iter_go_to {all} (iterators) [X] equals {all} [X] copy_of {all} [X] resize {array based collections} [X] Custom allocators [X] Each file needs to be independent without including external files [X] Fix cases where new_custom() should be used instead of just new() [X] Add Function Tables that contains data type functions (compare, copy, display, free, hash, priority) [X] Add error codes that can be accessed from the collection's struct [X] Merge bidirectional map key_buffer and val_buffer to a single buffer and make key_dist and val_dist into dist[2] [X] Callback utility on_create, on_read, on_update, on_delete, on_resize [X] Replace IntervalHeap node by a simple buffer of two pointers (V (*buffer)[2]) [X] PUBLIC and PRIVATE is back (opaque data structures) [X] Add EXT library