API: Refactor: Add macro infrastructure for typed arrays

- Add macros supporting typed arrays in the remote API
- Refactor StringArray-related functions on top of the new macros
This commit is contained in:
Thiago de Arruda
2014-05-23 15:49:40 -03:00
parent 92307201b5
commit 1e67b13fdc
3 changed files with 45 additions and 43 deletions

View File

@@ -8,6 +8,8 @@
#include "nvim/api/private/defs.h"
#define ARRAY_DICT_INIT {.size = 0, .items = NULL}
/// Validates the basic structure of the msgpack-rpc call and fills `res`
/// with the basic response structure.
///
@@ -80,9 +82,9 @@ void msgpack_rpc_from_dictionary(Dictionary result, msgpack_packer *res);
#define msgpack_rpc_init_window
#define msgpack_rpc_init_tabpage
#define msgpack_rpc_init_object = {.type = kObjectTypeNil}
#define msgpack_rpc_init_stringarray = {.items = NULL, .size = 0}
#define msgpack_rpc_init_array = {.items = NULL, .size = 0}
#define msgpack_rpc_init_dictionary = {.items = NULL, .size = 0}
#define msgpack_rpc_init_stringarray = ARRAY_DICT_INIT
#define msgpack_rpc_init_array = ARRAY_DICT_INIT
#define msgpack_rpc_init_dictionary = ARRAY_DICT_INIT
/// Helpers for freeing arguments/return value
///
@@ -102,6 +104,5 @@ void msgpack_rpc_free_stringarray(StringArray value);
void msgpack_rpc_free_array(Array value);
void msgpack_rpc_free_dictionary(Dictionary value);
#endif // NVIM_OS_MSGPACK_RPC_H