From 99a8db11117cc4dfa053cd19b82890e815b510b5 Mon Sep 17 00:00:00 2001 From: Patrick Pelissier Date: Thu, 15 Oct 2020 21:41:53 +0200 Subject: [PATCH] Prepare integration for custom names for dict. --- m-dict.h | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/m-dict.h b/m-dict.h index bac1027d..7ef25670 100644 --- a/m-dict.h +++ b/m-dict.h @@ -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)