/* %Z%%M% %I% %E% */

/*
 * Copyright (c) 1990, 1991, 1995 by Wayne C. Gramlich.
 * All rights reserved.
 *
 * Permission to use, copy, modify, distribute, and sell this software
 * for any purpose is hereby granted without fee provided that the above
 * copyright notice and this permission are retained.  The author makes
 * no representations about the suitability of this software for any purpose.
 * It is provided "as is" without express or implied warranty.
 */

/* Key-value table exported types: */

#ifndef TABLE_TYPES_H
#define TABLE_TYPES_H

typedef int	Tbl_key;
typedef int	Tbl_value;
typedef int	Tbl_handle;
typedef	int	(*Tbl_key_routine)();
typedef	int	(*Tbl_value_routine)();
typedef int	(*Tbl_routine_hash)(/*Tbl_key, Tbl_value*/);
typedef int	(*Tbl_routine_equal)(/*Ttbl_key, Tbl_key, Tbl_value*/);
typedef int	(*Tbl_routine_iterate)(/*Tbl_key, Tbl_value, Tbl_value*/);
typedef int	(*Tbl_routine_read)(/*Stdio, Heap, Tbl_value*/);
typedef int	(*Tbl_routine_write)(/*Tbl_write, Stdio, Tbl_value*/);
typedef struct Tbl_pair_struct		*Tbl_pair, Tbl_pair_rec;
typedef struct Tbl_struct 		*Tbl;

#define Table(key_type, value_type)	Tbl

#endif /* TABLE_TYPES_H */
