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); |
| 16 | int dict_add(dict_T *d, dictitem_T *item); |
Bram Moolenaar | e0be167 | 2018-07-08 16:50:37 +0200 | [diff] [blame] | 17 | int dict_add_number(dict_T *d, char *key, varnumber_T nr); |
Bram Moolenaar | 9b4a15d | 2020-01-11 16:05:23 +0100 | [diff] [blame] | 18 | int dict_add_bool(dict_T *d, char *key, varnumber_T nr); |
Bram Moolenaar | e0be167 | 2018-07-08 16:50:37 +0200 | [diff] [blame] | 19 | int dict_add_string(dict_T *d, char *key, char_u *str); |
Bram Moolenaar | e6fdf79 | 2018-12-26 22:57:42 +0100 | [diff] [blame] | 20 | 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] | 21 | int dict_add_list(dict_T *d, char *key, list_T *list); |
Bram Moolenaar | 0892832 | 2020-01-04 14:32:48 +0100 | [diff] [blame] | 22 | int dict_add_tv(dict_T *d, char *key, typval_T *tv); |
Bram Moolenaar | ae94315 | 2019-06-16 22:54:14 +0200 | [diff] [blame] | 23 | int dict_add_callback(dict_T *d, char *key, callback_T *cb); |
Bram Moolenaar | 45e18cb | 2019-04-28 18:05:35 +0200 | [diff] [blame] | 24 | void dict_iterate_start(typval_T *var, dict_iterator_T *iter); |
| 25 | 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] | 26 | int dict_add_dict(dict_T *d, char *key, dict_T *dict); |
Bram Moolenaar | cd52459 | 2016-07-17 14:57:05 +0200 | [diff] [blame] | 27 | long dict_len(dict_T *d); |
| 28 | dictitem_T *dict_find(dict_T *d, char_u *key, int len); |
Bram Moolenaar | 0892832 | 2020-01-04 14:32:48 +0100 | [diff] [blame] | 29 | 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] | 30 | char_u *dict_get_string(dict_T *d, char_u *key, int save); |
| 31 | varnumber_T dict_get_number(dict_T *d, char_u *key); |
Bram Moolenaar | 8c6173c | 2019-08-30 22:08:34 +0200 | [diff] [blame] | 32 | 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] | 33 | varnumber_T dict_get_number_check(dict_T *d, char_u *key); |
Bram Moolenaar | 5588133 | 2020-08-18 13:04:15 +0200 | [diff] [blame] | 34 | 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] | 35 | char_u *dict2string(typval_T *tv, int copyID, int restore_copyID); |
Bram Moolenaar | e0de171 | 2020-12-02 17:36:54 +0100 | [diff] [blame] | 36 | char_u *skip_literal_key(char_u *key); |
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 | cd52459 | 2016-07-17 14:57:05 +0200 | [diff] [blame] | 39 | void dict_extend(dict_T *d1, dict_T *d2, char_u *action); |
| 40 | dictitem_T *dict_lookup(hashitem_T *hi); |
| 41 | int dict_equal(dict_T *d1, dict_T *d2, int ic, int recursive); |
Bram Moolenaar | 9f9fe37 | 2019-07-27 23:12:12 +0200 | [diff] [blame] | 42 | void f_items(typval_T *argvars, typval_T *rettv); |
| 43 | void f_keys(typval_T *argvars, typval_T *rettv); |
| 44 | void f_values(typval_T *argvars, typval_T *rettv); |
Bram Moolenaar | 7e1652c | 2017-12-16 18:27:02 +0100 | [diff] [blame] | 45 | void dict_set_items_ro(dict_T *di); |
Bram Moolenaar | 9f9fe37 | 2019-07-27 23:12:12 +0200 | [diff] [blame] | 46 | void f_has_key(typval_T *argvars, typval_T *rettv); |
| 47 | void dict_remove(typval_T *argvars, typval_T *rettv, char_u *arg_errmsg); |
Bram Moolenaar | cd52459 | 2016-07-17 14:57:05 +0200 | [diff] [blame] | 48 | /* vim: set ft=c : */ |