aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api/private/defs.h
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2021-08-21 13:55:12 +0200
committerBjörn Linse <bjorn.linse@gmail.com>2021-10-03 10:46:57 +0200
commit32565922efe0d1a6e8e4dddb23295d1a08670b54 (patch)
tree501dd50b3ae199e3b52071d66d307e9d69772f82 /src/nvim/api/private/defs.h
parent9337fff8aad610acd5ef619f757686c47f0c118c (diff)
downloadrneovim-32565922efe0d1a6e8e4dddb23295d1a08670b54.tar.gz
rneovim-32565922efe0d1a6e8e4dddb23295d1a08670b54.tar.bz2
rneovim-32565922efe0d1a6e8e4dddb23295d1a08670b54.zip
refactor(api): handle option dicts properly
Do not copy a lot of lua strings (dict keys) to just strequal() them Just compare them directly to a dedicated hash function. feat(generators): HASHY McHASHFACE
Diffstat (limited to 'src/nvim/api/private/defs.h')
-rw-r--r--src/nvim/api/private/defs.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/nvim/api/private/defs.h b/src/nvim/api/private/defs.h
index f0d48bf145..8346e01558 100644
--- a/src/nvim/api/private/defs.h
+++ b/src/nvim/api/private/defs.h
@@ -19,6 +19,7 @@
#ifdef INCLUDE_GENERATED_DECLARATIONS
# define ArrayOf(...) Array
# define DictionaryOf(...) Dictionary
+# define Dict(name) KeyDict_##name
#endif
// Basic types
@@ -129,5 +130,14 @@ struct key_value_pair {
Object value;
};
+typedef Object *(*field_hash)(void *retval, const char *str, size_t len);
+typedef struct {
+ char *str;
+ size_t ptr_off;
+} KeySetLink;
+
+#ifdef INCLUDE_GENERATED_DECLARATIONS
+# include "keysets_defs.generated.h"
+#endif
#endif // NVIM_API_PRIVATE_DEFS_H