summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorTyge Løvset <[email protected]>2020-03-05 09:21:28 +0100
committerGitHub <[email protected]>2020-03-05 09:21:28 +0100
commit65e366e5c8b615cb59b04dc12d1a840ed183e2c9 (patch)
tree40d497a15fba891c47ce868787e736ccd837bf25
parent4e3efe66adc1048168f1ebb7faaf7e7153c4d454 (diff)
downloadSTC-modified-65e366e5c8b615cb59b04dc12d1a840ed183e2c9.tar.gz
STC-modified-65e366e5c8b615cb59b04dc12d1a840ed183e2c9.zip
Changed API a little.
-rw-r--r--README.md19
1 files changed, 12 insertions, 7 deletions
diff --git a/README.md b/README.md
index 9b5dc0f0..b94092c0 100644
--- a/README.md
+++ b/README.md
@@ -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);