summaryrefslogtreecommitdiffhomepage
path: root/include/stc/extend.h
diff options
context:
space:
mode:
author_Tradam <[email protected]>2023-09-08 01:29:47 +0000
committerGitHub <[email protected]>2023-09-08 01:29:47 +0000
commit3c76c7f3d5db3f9586a90d03f8fbb02d79de9acd (patch)
treeafbe4b540967223911f7c5de36559b82154f02f3 /include/stc/extend.h
parent0841165881871ee01b782129be681209aeed2423 (diff)
parent1a72205fe05c2375cfd380dd8381a8460d9ed8d1 (diff)
downloadSTC-modified-modified.tar.gz
STC-modified-modified.zip
Merge branch 'stclib:master' into modifiedHEADmodified
Diffstat (limited to 'include/stc/extend.h')
-rw-r--r--include/stc/extend.h17
1 files changed, 11 insertions, 6 deletions
diff --git a/include/stc/extend.h b/include/stc/extend.h
index 66b3ebd1..52d59414 100644
--- a/include/stc/extend.h
+++ b/include/stc/extend.h
@@ -43,10 +43,12 @@
#define _i_val i_val
#endif
-#ifdef _i_key
- c_PASTE(forward_, i_con)(i_type, _i_key, _i_val);
+#if defined _i_key && defined _i_val
+ c_PASTE(forward_, i_base)(i_type, _i_key, _i_val);
+#elif defined _i_key
+ c_PASTE(forward_, i_base)(i_type, _i_key);
#else
- c_PASTE(forward_, i_con)(i_type, _i_val);
+ c_PASTE(forward_, i_base)(i_type, _i_val);
#endif
typedef struct {
@@ -54,13 +56,16 @@ typedef struct {
i_type get;
} c_PASTE(i_type, _ext);
-#define c_getcon(cptr) c_container_of(cptr, _cx_memb(_ext), get)
+#define c_extend() c_container_of(self, _cx_MEMB(_ext), get)
+// Note: i_less: c_extend() accessible for cpque types
+// i_cmp: c_extend() accessible for csmap and csset types
+// i_hash/i_eq: c_extend() accessible for cmap and cset types
#define i_is_forward
-#define _i_inc <stc/i_con.h>
+#define _i_inc <stc/i_base.h>
#include _i_inc
#undef _i_inc
#undef _i_key
#undef _i_val
-#undef i_con
+#undef i_base
#undef i_extend