Add KEY_TYPE operator
This commit is contained in:
1 parent
3d6b737c46
commit
83226c5ce8
4 files changed
+10
No files matched your search
@@ -76,6 +76,7 @@
|
||||
,IT_INSERT(M_C(name,_insert)) \
|
||||
,IT_REMOVE(M_C(name,_remove)) \
|
||||
,CLEAN(M_C(name,_clean)) \
|
||||
,KEY_TYPE(size_t) \
|
||||
,SET_KEY(M_C(name, _set_at)) \
|
||||
,GET_KEY(M_C(name, _get)) \
|
||||
,M_IF_METHOD(INIT, oplist)(GET_SET_KEY(M_C(name, _get_at)) ,) \
|
||||
|
||||
@@ -80,6 +80,7 @@
|
||||
CLEAN(M_C(name,_clean)), \
|
||||
GET_MIN(M_C(name,_min)), \
|
||||
GET_MAX(M_C(name,_max)), \
|
||||
KEY_TYPE(M_C(name, _key_type_t)), \
|
||||
SET_KEY(M_C(name, _set_at)), \
|
||||
GET_KEY(M_C(name, _get)), \
|
||||
/*GET_SET_KEY(M_C(name, _get_at))*/, \
|
||||
@@ -185,6 +186,8 @@
|
||||
, \
|
||||
typedef key_t M_C(name, _type_t); \
|
||||
) \
|
||||
typedef key_t M_C(name, _key_type_t); \
|
||||
typedef value_t M_C(name, _value_type_t); \
|
||||
\
|
||||
/* Node of a B+TREE */ \
|
||||
typedef struct M_C(name, _node_s) { \
|
||||
|
||||
@@ -1784,6 +1784,7 @@ m_core_hash (const void *str, size_t length)
|
||||
#define M_MUL_MUL(a) ,a,
|
||||
#define M_DIV_DIV(a) ,a,
|
||||
#define M_CLEAN_CLEAN(a) ,a,
|
||||
#define M_KEY_TYPE_KEY_TYPE(a) ,a,
|
||||
#define M_GET_KEY_GET_KEY(a) ,a,
|
||||
#define M_SET_KEY_SET_KEY(a) ,a,
|
||||
#define M_GET_SET_KEY_GET_SET_KEY(a) ,a,
|
||||
@@ -1855,6 +1856,7 @@ m_core_hash (const void *str, size_t length)
|
||||
#define M_GET_MUL(...) M_GET_METHOD(MUL, M_MUL_DEFAULT, __VA_ARGS__)
|
||||
#define M_GET_DIV(...) M_GET_METHOD(DIV, M_DIV_DEFAULT, __VA_ARGS__)
|
||||
#define M_GET_CLEAN(...) M_GET_METHOD(CLEAN, M_NO_DEFAULT, __VA_ARGS__)
|
||||
#define M_GET_KEY_TYPE(...) M_GET_METHOD(KEY_TYPE, M_NO_DEFAULT, __VA_ARGS__)
|
||||
#define M_GET_GET_KEY(...) M_GET_METHOD(GET_KEY, M_NO_DEFAULT, __VA_ARGS__)
|
||||
#define M_GET_SET_KEY(...) M_GET_METHOD(SET_KEY, M_NO_DEFAULT, __VA_ARGS__)
|
||||
#define M_GET_GET_SET_KEY(...) M_GET_METHOD(GET_SET_KEY, M_NO_DEFAULT, __VA_ARGS__)
|
||||
|
||||
@@ -190,8 +190,11 @@
|
||||
size_t used, lower_limit, upper_limit; \
|
||||
M_C(name, _array_list_pair_t) table; \
|
||||
} dict_t[1]; \
|
||||
\
|
||||
typedef struct M_C(name, _s) *M_C(name, _ptr); \
|
||||
typedef const struct M_C(name, _s) *M_C(name, _srcptr); \
|
||||
typedef key_type M_C(name, _key_type_t); \
|
||||
typedef value_type M_C(name, _value_type_t); \
|
||||
\
|
||||
typedef struct M_C(name, _it_s) { \
|
||||
M_C(name, _array_list_pair_it_t) array_it; \
|
||||
@@ -800,6 +803,7 @@
|
||||
IT_NEXT(M_C(name,_next)), \
|
||||
IT_REF(M_C(name,_ref)), \
|
||||
IT_CREF(M_C(name,_cref)) \
|
||||
,KEY_TYPE(M_C(name, _key_type_t)) \
|
||||
,SET_KEY(M_C(name, _set_at)) \
|
||||
,GET_KEY(M_C(name, _get)) \
|
||||
,GET_SET_KEY(M_C(name, _get_at)) \
|
||||
|
||||
Reference in new issue
Block a user