/*
// ColdMUD was created and is copyright 1993, 1994 by Greg Hudson
//
// ColdX is a derivitive work, and is copyright 1995 by the ColdX Project.
// Full copyright information can be found in the file doc/CREDITS
//
// File: dict.h
// Version: 0.1-5
// Last Edited: 18 May 1995
//
// ---
//
// Declarations for ColdC dictionaries.
*/
#ifndef DICT_H
#define DICT_H
typedef struct dict Dict;
#include "data.h"
struct dict {
List *keys;
List *values;
int *links;
int *hashtab;
int hashtab_size;
int refs;
};
Dict *dict_new(List *keys, List *values);
Dict *dict_new_empty(void);
Dict *dict_from_slices(List *slices);
Dict *dict_dup(Dict *dict);
void dict_discard(Dict *dict);
int dict_cmp(Dict *dict1, Dict *dict2);
Dict *dict_add(Dict *dict, Data *key, Data *value);
Dict *dict_del(Dict *dict, Data *key);
long dict_find(Dict *dict, Data *key, Data *ret);
int dict_contains(Dict *dict, Data *key);
List *dict_keys(Dict *dict);
List *dict_key_value_pair(Dict *mapping, int i);
int dict_size(Dict *dict);
String *dict_add_literal_to_str(String *str, Dict *dict);
#endif