block: don't put spaces around :
[ironout.git] / hash.h
blob7d5afb4e851e21cb09430550f82a20f7a4b9d7ef
1 #ifndef _HASH_H
2 #define _HASH_H
4 struct entry {
5 struct entry *next;
6 void *data;
7 };
9 struct hash {
10 struct entry **table;
11 long (*datahash) (void *data);
12 long (*keyhash) (void *data);
13 int (*datacmp) (void *data, void *key);
14 int size;
15 int collisions;
18 struct hash *hash_init(long (*datahash) (void *data),
19 long (*keyhash) (void *data),
20 int (*datacmp) (void *data, void *key),
21 int size);
22 void hash_release(struct hash *hash);
24 void hash_put(struct hash *hash, void *value);
25 void *hash_get(struct hash *hash, void *key);
26 void hash_walk(struct hash *hash,
27 void (*walk)(void *data, void *arg),
28 void *arg);
30 long str_hash(void *s);
32 #endif