Add KEY_TYPE operator

This commit is contained in:
Patrick Pelissier committed 2018-10-28 10:03:47 +01:00
1 parent 3d6b737c46
commit 83226c5ce8
4 files changed
+10

No files matched your search

+1
View File
@@ -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)) ,) \
+3
View File
@@ -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) { \
+2
View File
@@ -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__)
+4
View File
@@ -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)) \