* @file
* @brief hashset: datastructure containing objects accessible by their key
* @author Markus Armbruster
- * @version $Id$
*/
#ifndef FIRM_ADT_SET_H
#define FIRM_ADT_SET_H
*/
typedef struct set set;
-/** The entry of a set, representing an element in the set and it's meta-information */
+/** The entry of a set, representing an element in the set and its meta-information */
typedef struct set_entry {
- unsigned hash; /**< the hash value of the element */
- size_t size; /**< the size of the element */
- int dptr[1]; /**< the element itself, data copied in must not need more
- alignment than this */
+ unsigned hash; /**< the hash value of the element */
+ size_t size; /**< the size of the element */
+ int dptr[1]; /**< the element itself, data copied in must not need more
+ alignment than this */
} set_entry;
/**
* Iterates over an set.
*
* @param set the set
+ * @param type type of iterator variable
* @param entry the iterator
*/
#define foreach_set(set, type, entry) for (entry = (type) set_first(set); entry; entry = (type) set_next(set))
#define set_hinsert0(set, key, size, hash) \
((set_entry *)_set_search ((set), (key), (size), (hash), _set_hinsert0))
-#define SET_VRFY(set) (void)0
-
-#ifdef STATS
-/**
- * Prints statistics on a set to stdout.
- *
- * @param set the set
- */
-void set_stats (set *set);
-#else
-# define set_stats(s) ((void)0)
-#endif
-
-#ifdef DEBUG
-/**
- * Describe a set.
- *
- * Writes a description of a set to stdout. The description includes:
- * - a header telling how many elements (nkey) and segments (nseg) are in use
- * - for every collision chain the number of element with its hash values
- *
- * @param set the set
- */
-FIRM_API void set_describe(set *set);
-#endif
-
-
/* Private */
typedef enum { _set_find, _set_insert, _set_hinsert, _set_hinsert0 } _set_action;