Prepare integration for custom names for dict.
This commit is contained in:
1 parent
24cdf1ca5c
commit
99a8db1111
1 file changed
+25
-25
@@ -39,8 +39,8 @@
|
||||
#define DICT_DEF2(name, key_type, ...) \
|
||||
M_BEGIN_PROTECTED_CODE \
|
||||
DICTI_DEF2_P1(M_IF_NARGS_EQ1(__VA_ARGS__) \
|
||||
((name, key_type, M_GLOBAL_OPLIST_OR_DEF(key_type)(), __VA_ARGS__, M_GLOBAL_OPLIST_OR_DEF(__VA_ARGS__)() ), \
|
||||
(name, key_type, __VA_ARGS__))) \
|
||||
((name, key_type, M_GLOBAL_OPLIST_OR_DEF(key_type)(), __VA_ARGS__, M_GLOBAL_OPLIST_OR_DEF(__VA_ARGS__)(),M_C(name, _t), M_C(name, _it_t), M_C(name, _type_t) ), \
|
||||
(name, key_type, __VA_ARGS__,M_C(name, _t), M_C(name, _it_t), M_C(name, _type_t) ))) \
|
||||
M_END_PROTECTED_CODE
|
||||
|
||||
|
||||
@@ -55,8 +55,8 @@
|
||||
#define DICT_STOREHASH_DEF2(name, key_type, ...) \
|
||||
M_BEGIN_PROTECTED_CODE \
|
||||
DICTI_SHASH_DEF2_P1(M_IF_NARGS_EQ1(__VA_ARGS__) \
|
||||
((name, key_type, M_GLOBAL_OPLIST_OR_DEF(key_type)(), __VA_ARGS__, M_GLOBAL_OPLIST_OR_DEF(__VA_ARGS__)() ), \
|
||||
(name, key_type, __VA_ARGS__))) \
|
||||
((name, key_type, M_GLOBAL_OPLIST_OR_DEF(key_type)(), __VA_ARGS__, M_GLOBAL_OPLIST_OR_DEF(__VA_ARGS__)(),M_C(name, _t), M_C(name, _it_t), M_C(name, _type_t) ), \
|
||||
(name, key_type, __VA_ARGS__,M_C(name, _t), M_C(name, _it_t), M_C(name, _type_t)))) \
|
||||
M_END_PROTECTED_CODE
|
||||
|
||||
|
||||
@@ -83,8 +83,8 @@
|
||||
#define DICT_SET_DEF(name, ...) \
|
||||
M_BEGIN_PROTECTED_CODE \
|
||||
DICTI_SET_DEF_P1(M_IF_NARGS_EQ1(__VA_ARGS__) \
|
||||
((name, __VA_ARGS__, M_GLOBAL_OPLIST_OR_DEF(__VA_ARGS__)()), \
|
||||
(name, __VA_ARGS__))) \
|
||||
((name, __VA_ARGS__, M_GLOBAL_OPLIST_OR_DEF(__VA_ARGS__)(),M_C(name, _t), M_C(name, _it_t), M_C(name, _type_t)), \
|
||||
(name, __VA_ARGS__,M_C(name, _t), M_C(name, _it_t), M_C(name, _type_t)))) \
|
||||
M_END_PROTECTED_CODE
|
||||
|
||||
|
||||
@@ -133,18 +133,18 @@
|
||||
#define DICTI_DEF2_P1(arg) DICTI_DEF2_P2 arg
|
||||
|
||||
/* Validate the key oplist before going further */
|
||||
#define DICTI_DEF2_P2(name, key_type, key_oplist, value_type, value_oplist) \
|
||||
M_IF_OPLIST(key_oplist)(DICTI_DEF2_P3, DICTI_DEF2_FAILURE)(name, key_type, key_oplist, value_type, value_oplist)
|
||||
#define DICTI_DEF2_P2(name, key_type, key_oplist, value_type, value_oplist, dict_t, dict_it_t, it_deref_t) \
|
||||
M_IF_OPLIST(key_oplist)(DICTI_DEF2_P3, DICTI_DEF2_FAILURE)(name, key_type, key_oplist, value_type, value_oplist, dict_t, dict_it_t, it_deref_t)
|
||||
|
||||
/* Validate the value oplist before going further */
|
||||
#define DICTI_DEF2_P3(name, key_type, key_oplist, value_type, value_oplist) \
|
||||
M_IF_OPLIST(value_oplist)(DICTI_DEF2_P4, DICTI_DEF2_FAILURE)(name, key_type, key_oplist, value_type, value_oplist)
|
||||
#define DICTI_DEF2_P3(name, key_type, key_oplist, value_type, value_oplist, dict_t, dict_it_t, it_deref_t) \
|
||||
M_IF_OPLIST(value_oplist)(DICTI_DEF2_P4, DICTI_DEF2_FAILURE)(name, key_type, key_oplist, value_type, value_oplist, dict_t, dict_it_t, it_deref_t)
|
||||
|
||||
/* Stop processing with a compilation failure */
|
||||
#define DICTI_DEF2_FAILURE(name, key_type, key_oplist, value_type, value_oplist) \
|
||||
#define DICTI_DEF2_FAILURE(name, key_type, key_oplist, value_type, value_oplist, dict_t, dict_it_t, it_deref_t) \
|
||||
M_STATIC_FAILURE(M_LIB_NOT_AN_OPLIST, "(DICT_DEF2): at least one of the given argument is not a valid oplist: " M_AS_STR(key_oplist) " / " M_AS_STR(value_oplist) )
|
||||
|
||||
#define DICTI_DEF2_P4(name, key_type, key_oplist, value_type, value_oplist) \
|
||||
#define DICTI_DEF2_P4(name, key_type, key_oplist, value_type, value_oplist, dict_t, dict_it_t, it_deref_t) \
|
||||
\
|
||||
M_CHECK_COMPATIBLE_OPLIST(name, 1, key_type, key_oplist) \
|
||||
M_CHECK_COMPATIBLE_OPLIST(name, 2, value_type, value_oplist) \
|
||||
@@ -153,7 +153,7 @@
|
||||
\
|
||||
DICTI_FUNC_DEF2_P5(name, key_type, key_oplist, value_type, value_oplist, \
|
||||
M_C(name, _pair_ct), TUPLE_OPLIST(M_C(name, _pair), key_oplist, value_oplist), 0, 0, \
|
||||
M_C(name, _t), M_C(name, _it_t), M_C(name, _type_t))
|
||||
dict_t, dict_it_t, it_deref_t )
|
||||
|
||||
|
||||
/* Define a dictionary with the key key_type to the value value_type.
|
||||
@@ -165,18 +165,18 @@
|
||||
#define DICTI_SHASH_DEF2_P1(arg) DICTI_SHASH_DEF2_P2 arg
|
||||
|
||||
/* Validate the key oplist before going further */
|
||||
#define DICTI_SHASH_DEF2_P2(name, key_type, key_oplist, value_type, value_oplist) \
|
||||
M_IF_OPLIST(key_oplist)(DICTI_SHASH_DEF2_P3, DICTI_SHASH_DEF2_FAILURE)(name, key_type, key_oplist, value_type, value_oplist)
|
||||
#define DICTI_SHASH_DEF2_P2(name, key_type, key_oplist, value_type, value_oplist, dict_t, dict_it_t, it_deref_t) \
|
||||
M_IF_OPLIST(key_oplist)(DICTI_SHASH_DEF2_P3, DICTI_SHASH_DEF2_FAILURE)(name, key_type, key_oplist, value_type, value_oplist, dict_t, dict_it_t, it_deref_t)
|
||||
|
||||
/* Validate the value oplist before going further */
|
||||
#define DICTI_SHASH_DEF2_P3(name, key_type, key_oplist, value_type, value_oplist) \
|
||||
M_IF_OPLIST(value_oplist)(DICTI_SHASH_DEF2_P4, DICTI_SHASH_DEF2_FAILURE)(name, key_type, key_oplist, value_type, value_oplist)
|
||||
#define DICTI_SHASH_DEF2_P3(name, key_type, key_oplist, value_type, value_oplist, dict_t, dict_it_t, it_deref_t) \
|
||||
M_IF_OPLIST(value_oplist)(DICTI_SHASH_DEF2_P4, DICTI_SHASH_DEF2_FAILURE)(name, key_type, key_oplist, value_type, value_oplist, dict_t, dict_it_t, it_deref_t)
|
||||
|
||||
/* Stop processing with a compilation failure */
|
||||
#define DICTI_SHASH_DEF2_FAILURE(name, key_type, key_oplist, value_type, value_oplist) \
|
||||
#define DICTI_SHASH_DEF2_FAILURE(name, key_type, key_oplist, value_type, value_oplist, dict_t, dict_it_t, it_deref_t) \
|
||||
M_STATIC_FAILURE(M_LIB_NOT_AN_OPLIST, "(DICT_STOREHASH_DEF2): at least one of the given argument is not a valid oplist: " M_AS_STR(key_oplist) " / " M_AS_STR(value_oplist) )
|
||||
|
||||
#define DICTI_SHASH_DEF2_P4(name, key_type, key_oplist, value_type, value_oplist) \
|
||||
#define DICTI_SHASH_DEF2_P4(name, key_type, key_oplist, value_type, value_oplist, dict_t, dict_it_t, it_deref_t) \
|
||||
\
|
||||
M_CHECK_COMPATIBLE_OPLIST(name, 1, key_type, key_oplist) \
|
||||
M_CHECK_COMPATIBLE_OPLIST(name, 2, value_type, value_oplist) \
|
||||
@@ -185,7 +185,7 @@
|
||||
\
|
||||
DICTI_FUNC_DEF2_P5(name, key_type, key_oplist, value_type, value_oplist, \
|
||||
M_C(name, _pair_ct), TUPLE_OPLIST(M_C(name, _pair), M_DEFAULT_OPLIST, key_oplist, value_oplist), 0, 1, \
|
||||
M_C(name, _t), M_C(name, _it_t), M_C(name, _type_t))
|
||||
dict_t, dict_it_t, it_deref_t )
|
||||
|
||||
|
||||
/* Define a set with the key key_type
|
||||
@@ -195,14 +195,14 @@
|
||||
#define DICTI_SET_DEF_P1(arg) DICTI_SET_DEF_P2 arg
|
||||
|
||||
/* Validate the key oplist before going further */
|
||||
#define DICTI_SET_DEF_P2(name, key_type, key_oplist) \
|
||||
M_IF_OPLIST(key_oplist)(DICTI_SET_DEF_P4, DICTI_SET_DEF_FAILURE)(name, key_type, key_oplist)
|
||||
#define DICTI_SET_DEF_P2(name, key_type, key_oplist, dict_t, dict_it_t, it_deref_t) \
|
||||
M_IF_OPLIST(key_oplist)(DICTI_SET_DEF_P4, DICTI_SET_DEF_FAILURE)(name, key_type, key_oplist, dict_t, dict_it_t, it_deref_t)
|
||||
|
||||
/* Stop processing with a compilation failure */
|
||||
#define DICTI_SET_DEF_FAILURE(name, key_type, key_oplist) \
|
||||
#define DICTI_SET_DEF_FAILURE(name, key_type, key_oplist, dict_t, dict_it_t, it_deref_t) \
|
||||
M_STATIC_FAILURE(M_LIB_NOT_AN_OPLIST, "(DICT_SET_DEF): the given argument is not a valid oplist: " M_AS_STR(key_oplist) )
|
||||
|
||||
#define DICTI_SET_DEF_P4(name, key_type, key_oplist) \
|
||||
#define DICTI_SET_DEF_P4(name, key_type, key_oplist, dict_t, dict_it_t, it_deref_t) \
|
||||
\
|
||||
M_CHECK_COMPATIBLE_OPLIST(name, 1, key_type, key_oplist) \
|
||||
\
|
||||
@@ -210,7 +210,7 @@
|
||||
\
|
||||
DICTI_FUNC_DEF2_P5(name, key_type, key_oplist, key_type, M_EMPTY_OPLIST, \
|
||||
M_C(name, _pair_ct), TUPLE_OPLIST(M_C(name, _pair), key_oplist), 1, 0, \
|
||||
M_C(name, _t), M_C(name, _it_t), M_C(name, _type_t))
|
||||
dict_t, dict_it_t, it_deref_t)
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user