Lines Matching refs:map
56 void hashmap__init(struct hashmap *map, hashmap_hash_fn hash_fn,
61 void hashmap__clear(struct hashmap *map);
62 void hashmap__free(struct hashmap *map);
64 size_t hashmap__size(const struct hashmap *map);
65 size_t hashmap__capacity(const struct hashmap *map);
95 int hashmap__insert(struct hashmap *map, const void *key, void *value,
99 static inline int hashmap__add(struct hashmap *map, in hashmap__add() argument
102 return hashmap__insert(map, key, value, HASHMAP_ADD, NULL, NULL); in hashmap__add()
105 static inline int hashmap__set(struct hashmap *map, in hashmap__set() argument
109 return hashmap__insert(map, key, value, HASHMAP_SET, in hashmap__set()
113 static inline int hashmap__update(struct hashmap *map, in hashmap__update() argument
117 return hashmap__insert(map, key, value, HASHMAP_UPDATE, in hashmap__update()
121 static inline int hashmap__append(struct hashmap *map, in hashmap__append() argument
124 return hashmap__insert(map, key, value, HASHMAP_APPEND, NULL, NULL); in hashmap__append()
127 bool hashmap__delete(struct hashmap *map, const void *key,
130 bool hashmap__find(const struct hashmap *map, const void *key, void **value);
138 #define hashmap__for_each_entry(map, cur, bkt) \ argument
139 for (bkt = 0; bkt < map->cap; bkt++) \
140 for (cur = map->buckets[bkt]; cur; cur = cur->next)
150 #define hashmap__for_each_entry_safe(map, cur, tmp, bkt) \ argument
151 for (bkt = 0; bkt < map->cap; bkt++) \
152 for (cur = map->buckets[bkt]; \
162 #define hashmap__for_each_key_entry(map, cur, _key) \ argument
163 for (cur = ({ size_t bkt = hash_bits(map->hash_fn((_key), map->ctx),\
164 map->cap_bits); \
165 map->buckets ? map->buckets[bkt] : NULL; }); \
168 if (map->equal_fn(cur->key, (_key), map->ctx))
170 #define hashmap__for_each_key_entry_safe(map, cur, tmp, _key) \ argument
171 for (cur = ({ size_t bkt = hash_bits(map->hash_fn((_key), map->ctx),\
172 map->cap_bits); \
173 cur = map->buckets ? map->buckets[bkt] : NULL; }); \
176 if (map->equal_fn(cur->key, (_key), map->ctx))