15 #define r_map_hashsize(__m__) (1 << (__m__)->nbits)
16 #define r_map_hashmask(__m__) (r_map_hashsize(__m__) - 1)
18 typedef struct rmap_s {
29 rmap_t *r_map_create(ruint elt_size, ruint nbits);
30 void r_map_destroy(rmap_t *array);
31 rlong r_map_lookup(rmap_t *map, rlong current, const rchar *name, rsize_t namesize);
32 rlong r_map_lookup_s(rmap_t *map, rlong current, const rchar *name);
33 rlong r_map_taillookup(rmap_t *map, rlong current, const rchar *name, rsize_t namesize);
34 rlong r_map_taillookup_s(rmap_t *map, rlong current, const rchar *name);
35 rlong r_map_lookup_d(rmap_t *map, rlong current, double name);
36 rlong r_map_lookup_l(rmap_t *map, rlong current, long name);
37 rlong r_map_add(rmap_t *map, const rchar *name, rsize_t namesize, rconstpointer pval);
38 rlong r_map_add_s(rmap_t *map, const rchar *name, rconstpointer pval);
39 rlong r_map_add_d(rmap_t *map, double name, rconstpointer pval);
40 rlong r_map_add_l(rmap_t *map, long name, rconstpointer pval);
41 rlong r_map_setvalue(rmap_t *map, rlong index, rconstpointer pval);
42 const rchar *r_map_key(rmap_t *map, rulong index);
43 rpointer r_map_value(rmap_t *map, rulong index);
44 rint r_map_delete(rmap_t *map, rulong index);
46 rlong r_map_first(rmap_t *map);
47 rlong r_map_last(rmap_t *map);
48 rlong r_map_next(rmap_t *map, rlong current);
49 rlong r_map_prev(rmap_t *map, rlong current);