5 #define HashSet cpset_t
6 #define HashSetIterator cpset_iterator_t
7 #define HashSetEntry cpset_hashset_entry_t
8 #define ValueType void*
10 #define DeletedValue ((void*)-1)
11 #define Hash(this,value) this->hash_function(value)
12 #define KeysEqual(this,key1,key2) this->cmp_function(key1, key2)
13 #define SetRangeEmpty(ptr,size) memset(ptr, 0, (size) * sizeof(cpset_hashset_entry_t))
15 #define hashset_init _cpset_init
16 #define hashset_init_size _cpset_init_size
17 #define hashset_destroy cpset_destroy
18 #define hashset_insert cpset_insert
19 #define hashset_remove cpset_remove
20 #define hashset_find cpset_find
21 #define hashset_size cpset_size
22 #define hashset_iterator_init cpset_iterator_init
23 #define hashset_iterator_next cpset_iterator_next
24 #define hashset_remove_iterator cpset_remove_iterator
28 void cpset_init(cpset_t *this, cpset_hash_function hash_function,
29 cpset_cmp_function cmp_function)
31 this->hash_function = hash_function;
32 this->cmp_function = cmp_function;
36 void cpset_init_size(cpset_t *this, cpset_hash_function hash_function,
37 cpset_cmp_function cmp_function, size_t expected_elems)
39 this->hash_function = hash_function;
40 this->cmp_function = cmp_function;
41 _cpset_init_size(this, expected_elems);