diff options
| author | Tyge Løvset <[email protected]> | 2020-03-05 09:21:28 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2020-03-05 09:21:28 +0100 |
| commit | 65e366e5c8b615cb59b04dc12d1a840ed183e2c9 (patch) | |
| tree | 40d497a15fba891c47ce868787e736ccd837bf25 | |
| parent | 4e3efe66adc1048168f1ebb7faaf7e7153c4d454 (diff) | |
| download | STC-modified-65e366e5c8b615cb59b04dc12d1a840ed183e2c9.tar.gz STC-modified-65e366e5c8b615cb59b04dc12d1a840ed183e2c9.zip | |
Changed API a little.
| -rw-r--r-- | README.md | 19 |
1 files changed, 12 insertions, 7 deletions
@@ -15,9 +15,9 @@ Usage Simple CVector: ``` #include "cvector.h" -declare_CVector(ix, int64_t); // ix is just an example tag name, use anything. +declare_CVector(ix, int64_t); // ix is just an example tag name, use anything without underscore. -CVector(ix) bignums = cvector_initializer; // use cvector_ix_init(); if initializing after declaration. +CVector_ix bignums = cvector_initializer; // use cvector_ix_init(); if initializing after declaration. cvector_ix_reserve(&bignums, 100); for (int i = 0; i<100; ++i) cvector_ix_push(&bignums, i * i * i); @@ -34,7 +34,7 @@ CVector of CString #include "cvector.h" declare_CVector(cs, CString, cstring_destroy); // supply inline destructor of values -CVector(cs) names = cvector_initializer; +CVector_cs names = cvector_initializer; cvector_cs_push(&names, cstring_make("Mary")); cvector_cs_push(&names, cstring_make("Joe")); printf("%s\n", names.data[1].str); // Access the string char* @@ -45,7 +45,7 @@ Simple CMap, int -> int. #include "cmap.h" declare_CMap(ii, int, int); -CMap(ii) nums = cmap_initializer; +CMap_ii nums = cmap_initializer; cmap_ii_put(&nums, 8, 64); cmap_ii_put(&nums, 11, 121); printf("%d\n", cmap_ii_get(nums, 8)->value); @@ -57,13 +57,18 @@ Simple CMap with CString keys -> int values declare_CMap_STR(si, int); // Just a shorthand macro for the general declare call. // Keys strings are "magically" managed internally, although CMap is ignorant of CString. -CMap(si) nums = cmap_initializer; +CMap_si nums = cmap_initializer; cmap_si_put(&nums, "Hello", 64); cmap_si_put(&nums, "Groovy", 121); cmap_si_put(&nums, "Groovy", 200); // overwrite previous // iterate the map: -for (CMapIter(si) i = cmap_si_begin(nums); i.item != cmap_si_end(nums); i = cmap_si_next(i)) +for (cmap_si_iter_t i = cmap_si_begin(nums); i.item != cmap_si_end(nums); i = cmap_si_next(i)) printf("%s: %d\n", i.item->key.str, i.item->value); + +// or use the short form: +cforeach (i, cmap_si, nums) + printf("%s: %d\n", i.item->key.str, i.item->value); + cmap_si_destroy(&nums); ``` CMap with CString keys, and CString values. Values are not handled internally. @@ -71,7 +76,7 @@ CMap with CString keys, and CString values. Values are not handled internally. #include "cmap.h" declare_CMap_STR(ss, CString, cstring_destroy); -CMap(ss) table = cmap_initializer; +CMap_ss table = cmap_initializer; cmap_ss_put(&table, "Hello", cstring_make("Goodbye")); cmap_ss_put(&table, "Groovy", cstring_make("Shaky")); printf("Groovy: %s\n", cmap_ss_get(table, "Groovy")->value.str); |
