From 08d2af22dbbe6b90a7c8973b8957f9827ec01153 Mon Sep 17 00:00:00 2001 From: Patrick Pelissier Date: Sun, 28 Oct 2018 10:38:41 +0100 Subject: [PATCH] Add KEY_OPLIST & VALUE_OPLIST operators --- m-bptree.h | 2 ++ m-core.h | 4 ++++ m-dict.h | 5 ++--- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/m-bptree.h b/m-bptree.h index 5771f468..c6b3debe 100644 --- a/m-bptree.h +++ b/m-bptree.h @@ -86,6 +86,8 @@ GET_KEY(M_C(name, _get)), \ /*GET_SET_KEY(M_C(name, _get_at))*/, \ ERASE_KEY(M_C(name, _erase)), \ + KEY_OPLIST(key_oplist), \ + VALUE_OPLIST(value_oplist), \ M_IF_METHOD_BOTH(GET_STR, key_oplist, value_oplist)(GET_STR(M_C(name, _get_str)),), \ M_IF_METHOD_BOTH(PARSE_STR, key_oplist, value_oplist)(PARSE_STR(M_C(name, _parse_str)),), \ M_IF_METHOD_BOTH(OUT_STR, key_oplist, value_oplist)(OUT_STR(M_C(name, _out_str)),), \ diff --git a/m-core.h b/m-core.h index 0875911e..3b00b43c 100644 --- a/m-core.h +++ b/m-core.h @@ -1786,6 +1786,8 @@ m_core_hash (const void *str, size_t length) #define M_CLEAN_CLEAN(a) ,a, #define M_KEY_TYPE_KEY_TYPE(a) ,a, #define M_VALUE_TYPE_VALUE_TYPE(a) ,a, +#define M_KEY_OPLIST_KEY_OPLIST(a) ,a, +#define M_VALUE_OPLIST_VALUE_OPLIST(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, @@ -1859,6 +1861,8 @@ m_core_hash (const void *str, size_t length) #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_VALUE_TYPE(...) M_GET_METHOD(VALUE_TYPE, M_NO_DEFAULT, __VA_ARGS__) +#define M_GET_KEY_OPLIST(...) M_GET_METHOD(KEY_OPLIST, M_NO_DEFAULT, __VA_ARGS__) +#define M_GET_VALUE_OPLIST(...) M_GET_METHOD(VALUE_OPLIST, 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__) diff --git a/m-dict.h b/m-dict.h index 24c017a2..bd236d0a 100644 --- a/m-dict.h +++ b/m-dict.h @@ -809,14 +809,13 @@ ,GET_KEY(M_C(name, _get)) \ ,GET_SET_KEY(M_C(name, _get_at)) \ ,ERASE_KEY(M_C(name, _erase)) \ - ,OPLIST(PAIR_OPLIST(key_oplist, value_oplist)) \ + ,KEY_OPLIST(key_oplist) \ + ,VALUE_OPLIST(value_oplist) \ ,M_IF_METHOD_BOTH(GET_STR, key_oplist, value_oplist)(GET_STR(M_C(name, _get_str)),) \ ,M_IF_METHOD_BOTH(PARSE_STR, key_oplist, value_oplist)(PARSE_STR(M_C(name, _parse_str)),) \ ,M_IF_METHOD_BOTH(OUT_STR, key_oplist, value_oplist)(OUT_STR(M_C(name, _out_str)),) \ ,M_IF_METHOD_BOTH(IN_STR, key_oplist, value_oplist)(IN_STR(M_C(name, _in_str)),) \ ,M_IF_METHOD(EQUAL, value_oplist)(EQUAL(M_C(name, _equal_p)),) \ - ,KEY_OPLIST(key_oplist) \ - ,VALUE_OPLIST(value_oplist) \ ,M_IF_METHOD(NEW, oplist)(NEW(M_GET_NEW key_oplist),) \ ,M_IF_METHOD(REALLOC, oplist)(REALLOC(M_GET_REALLOC key_oplist),) \ ,M_IF_METHOD(DEL, oplist)(DEL(M_GET_DEL key_oplist),) \