blob: 6d9ae194a651852d040e5fa23fb2a84ffaf78e46 [file] [log] [blame]
Bram Moolenaarcd524592016-07-17 14:57:05 +02001/* dict.c */
2dict_T *dict_alloc(void);
Bram Moolenaarf49cc602018-11-11 15:21:05 +01003dict_T *dict_alloc_id(alloc_id_T id);
Bram Moolenaar7e1652c2017-12-16 18:27:02 +01004dict_T *dict_alloc_lock(int lock);
Bram Moolenaarcd524592016-07-17 14:57:05 +02005int rettv_dict_alloc(typval_T *rettv);
Bram Moolenaar45cf6e92017-04-30 20:25:19 +02006void rettv_dict_set(typval_T *rettv, dict_T *d);
Bram Moolenaar7e1652c2017-12-16 18:27:02 +01007void dict_free_contents(dict_T *d);
Bram Moolenaarcd524592016-07-17 14:57:05 +02008void dict_unref(dict_T *d);
9int dict_free_nonref(int copyID);
10void dict_free_items(int copyID);
11dictitem_T *dictitem_alloc(char_u *key);
12void dictitem_remove(dict_T *dict, dictitem_T *item);
13void dictitem_free(dictitem_T *item);
14dict_T *dict_copy(dict_T *orig, int deep, int copyID);
15int dict_add(dict_T *d, dictitem_T *item);
Bram Moolenaare0be1672018-07-08 16:50:37 +020016int dict_add_number(dict_T *d, char *key, varnumber_T nr);
Bram Moolenaard7f246c2019-04-08 18:15:41 +020017int dict_add_special(dict_T *d, char *key, varnumber_T nr);
Bram Moolenaare0be1672018-07-08 16:50:37 +020018int dict_add_string(dict_T *d, char *key, char_u *str);
Bram Moolenaare6fdf792018-12-26 22:57:42 +010019int dict_add_string_len(dict_T *d, char *key, char_u *str, int len);
Bram Moolenaarcd524592016-07-17 14:57:05 +020020int dict_add_list(dict_T *d, char *key, list_T *list);
Bram Moolenaarb5ae48e2016-08-12 22:23:25 +020021int dict_add_dict(dict_T *d, char *key, dict_T *dict);
Bram Moolenaarcd524592016-07-17 14:57:05 +020022long dict_len(dict_T *d);
23dictitem_T *dict_find(dict_T *d, char_u *key, int len);
Bram Moolenaar8f667172018-12-14 15:38:31 +010024char_u *dict_get_string(dict_T *d, char_u *key, int save);
25varnumber_T dict_get_number(dict_T *d, char_u *key);
Bram Moolenaarcd524592016-07-17 14:57:05 +020026char_u *dict2string(typval_T *tv, int copyID, int restore_copyID);
Bram Moolenaar8f667172018-12-14 15:38:31 +010027int dict_get_tv(char_u **arg, typval_T *rettv, int evaluate);
Bram Moolenaarcd524592016-07-17 14:57:05 +020028void dict_extend(dict_T *d1, dict_T *d2, char_u *action);
29dictitem_T *dict_lookup(hashitem_T *hi);
30int dict_equal(dict_T *d1, dict_T *d2, int ic, int recursive);
31void dict_list(typval_T *argvars, typval_T *rettv, int what);
Bram Moolenaar7e1652c2017-12-16 18:27:02 +010032void dict_set_items_ro(dict_T *di);
Bram Moolenaarcd524592016-07-17 14:57:05 +020033/* vim: set ft=c : */