Bram Moolenaar | cd52459 | 2016-07-17 14:57:05 +0200 | [diff] [blame] | 1 | /* dict.c */ |
| 2 | dict_T *dict_alloc(void); |
Bram Moolenaar | f49cc60 | 2018-11-11 15:21:05 +0100 | [diff] [blame] | 3 | dict_T *dict_alloc_id(alloc_id_T id); |
Bram Moolenaar | 7e1652c | 2017-12-16 18:27:02 +0100 | [diff] [blame] | 4 | dict_T *dict_alloc_lock(int lock); |
Bram Moolenaar | cd52459 | 2016-07-17 14:57:05 +0200 | [diff] [blame] | 5 | int rettv_dict_alloc(typval_T *rettv); |
Bram Moolenaar | 45cf6e9 | 2017-04-30 20:25:19 +0200 | [diff] [blame] | 6 | void rettv_dict_set(typval_T *rettv, dict_T *d); |
Bram Moolenaar | 7e1652c | 2017-12-16 18:27:02 +0100 | [diff] [blame] | 7 | void dict_free_contents(dict_T *d); |
Bram Moolenaar | 89483d4 | 2020-05-10 15:24:44 +0200 | [diff] [blame] | 8 | void hashtab_free_contents(hashtab_T *ht); |
Bram Moolenaar | cd52459 | 2016-07-17 14:57:05 +0200 | [diff] [blame] | 9 | void dict_unref(dict_T *d); |
| 10 | int dict_free_nonref(int copyID); |
| 11 | void dict_free_items(int copyID); |
| 12 | dictitem_T *dictitem_alloc(char_u *key); |
| 13 | void dictitem_remove(dict_T *dict, dictitem_T *item); |
| 14 | void dictitem_free(dictitem_T *item); |
| 15 | dict_T *dict_copy(dict_T *orig, int deep, int copyID); |
Bram Moolenaar | 6f1d2aa | 2021-06-01 21:21:55 +0200 | [diff] [blame] | 16 | int dict_wrong_func_name(dict_T *d, typval_T *tv, char_u *name); |
Bram Moolenaar | cd52459 | 2016-07-17 14:57:05 +0200 | [diff] [blame] | 17 | int dict_add(dict_T *d, dictitem_T *item); |
Bram Moolenaar | e0be167 | 2018-07-08 16:50:37 +0200 | [diff] [blame] | 18 | int dict_add_number(dict_T *d, char *key, varnumber_T nr); |
Bram Moolenaar | 9b4a15d | 2020-01-11 16:05:23 +0100 | [diff] [blame] | 19 | int dict_add_bool(dict_T *d, char *key, varnumber_T nr); |
Bram Moolenaar | e0be167 | 2018-07-08 16:50:37 +0200 | [diff] [blame] | 20 | int dict_add_string(dict_T *d, char *key, char_u *str); |
Bram Moolenaar | e6fdf79 | 2018-12-26 22:57:42 +0100 | [diff] [blame] | 21 | int dict_add_string_len(dict_T *d, char *key, char_u *str, int len); |
Bram Moolenaar | cd52459 | 2016-07-17 14:57:05 +0200 | [diff] [blame] | 22 | int dict_add_list(dict_T *d, char *key, list_T *list); |
Bram Moolenaar | 0892832 | 2020-01-04 14:32:48 +0100 | [diff] [blame] | 23 | int dict_add_tv(dict_T *d, char *key, typval_T *tv); |
Bram Moolenaar | ae94315 | 2019-06-16 22:54:14 +0200 | [diff] [blame] | 24 | int dict_add_callback(dict_T *d, char *key, callback_T *cb); |
Bram Moolenaar | 45e18cb | 2019-04-28 18:05:35 +0200 | [diff] [blame] | 25 | void dict_iterate_start(typval_T *var, dict_iterator_T *iter); |
| 26 | char_u *dict_iterate_next(dict_iterator_T *iter, typval_T **tv_result); |
Bram Moolenaar | b5ae48e | 2016-08-12 22:23:25 +0200 | [diff] [blame] | 27 | int dict_add_dict(dict_T *d, char *key, dict_T *dict); |
Bram Moolenaar | cd52459 | 2016-07-17 14:57:05 +0200 | [diff] [blame] | 28 | long dict_len(dict_T *d); |
| 29 | dictitem_T *dict_find(dict_T *d, char_u *key, int len); |
Bram Moolenaar | 0892832 | 2020-01-04 14:32:48 +0100 | [diff] [blame] | 30 | int dict_get_tv(dict_T *d, char_u *key, typval_T *rettv); |
Bram Moolenaar | 8f66717 | 2018-12-14 15:38:31 +0100 | [diff] [blame] | 31 | char_u *dict_get_string(dict_T *d, char_u *key, int save); |
| 32 | varnumber_T dict_get_number(dict_T *d, char_u *key); |
Bram Moolenaar | 8c6173c | 2019-08-30 22:08:34 +0200 | [diff] [blame] | 33 | varnumber_T dict_get_number_def(dict_T *d, char_u *key, int def); |
Bram Moolenaar | b0ebbda | 2019-06-02 16:51:21 +0200 | [diff] [blame] | 34 | varnumber_T dict_get_number_check(dict_T *d, char_u *key); |
Bram Moolenaar | 5588133 | 2020-08-18 13:04:15 +0200 | [diff] [blame] | 35 | varnumber_T dict_get_bool(dict_T *d, char_u *key, int def); |
Bram Moolenaar | cd52459 | 2016-07-17 14:57:05 +0200 | [diff] [blame] | 36 | char_u *dict2string(typval_T *tv, int copyID, int restore_copyID); |
Bram Moolenaar | c5e6a71 | 2020-12-04 19:12:14 +0100 | [diff] [blame] | 37 | char_u *get_literal_key(char_u **arg); |
Bram Moolenaar | 8ea9390 | 2020-06-27 14:11:53 +0200 | [diff] [blame] | 38 | int eval_dict(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int literal); |
Bram Moolenaar | 7a3fe3e | 2021-07-22 14:58:47 +0200 | [diff] [blame] | 39 | void dict_extend(dict_T *d1, dict_T *d2, char_u *action, char *func_name); |
Bram Moolenaar | cd52459 | 2016-07-17 14:57:05 +0200 | [diff] [blame] | 40 | dictitem_T *dict_lookup(hashitem_T *hi); |
| 41 | int dict_equal(dict_T *d1, dict_T *d2, int ic, int recursive); |
Yegappan Lakshmanan | f973eeb | 2021-12-22 18:19:26 +0000 | [diff] [blame] | 42 | long dict_count(dict_T *d, typval_T *needle, int ic); |
| 43 | void dict_extend_func(typval_T *argvars, type_T *type, char *func_name, char_u *arg_errmsg, int is_new, typval_T *rettv); |
| 44 | void dict_filter_map(dict_T *d, filtermap_T filtermap, type_T *argtype, char *func_name, char_u *arg_errmsg, typval_T *expr, typval_T *rettv); |
| 45 | void dict_remove(typval_T *argvars, typval_T *rettv, char_u *arg_errmsg); |
Bram Moolenaar | 9f9fe37 | 2019-07-27 23:12:12 +0200 | [diff] [blame] | 46 | void f_items(typval_T *argvars, typval_T *rettv); |
| 47 | void f_keys(typval_T *argvars, typval_T *rettv); |
| 48 | void f_values(typval_T *argvars, typval_T *rettv); |
Bram Moolenaar | 7e1652c | 2017-12-16 18:27:02 +0100 | [diff] [blame] | 49 | void dict_set_items_ro(dict_T *di); |
Bram Moolenaar | 9f9fe37 | 2019-07-27 23:12:12 +0200 | [diff] [blame] | 50 | void f_has_key(typval_T *argvars, typval_T *rettv); |
Bram Moolenaar | cd52459 | 2016-07-17 14:57:05 +0200 | [diff] [blame] | 51 | /* vim: set ft=c : */ |