/*
* Hic Est Leo -- Universal Dictionaries
*
- * (c) 2014 Martin Mares <mj@ucw.cz>
+ * (c) 2014--2015 Martin Mares <mj@ucw.cz>
*/
#include <ucw/lib.h>
#define HASH_NODE struct kv_map
#define HASH_PREFIX(x) kv_map_##x
#define HASH_KEY_STRING name
+#define HASH_WANT_FIND
#define HASH_WANT_LOOKUP
#define HASH_AUTO_POOL 4096
#define HASH_ZERO_FILL
*GARY_PUSH(d->names) = k->name;
return k->id;
}
+
+u32 dict_encode_if_exists(struct dict *d, const char *key)
+{
+ struct kv_map *k = kv_map_find(d->hash, (char *) key);
+ return k ? k->id : 0;
+}
/*
* Hic Est Leo -- Universal Dictionaries
*
- * (c) 2014 Martin Mares <mj@ucw.cz>
+ * (c) 2014--2015 Martin Mares <mj@ucw.cz>
*/
#ifndef _LEO_DICT_H
}
u32 dict_encode(struct dict *d, const char *key);
+u32 dict_encode_if_exists(struct dict *d, const char *key);
static inline u32 dict_size(struct dict *d)
{
return dict_encode(&style_layer_dict, key);
}
+static inline layer_t style_layer_encode_if_exists(const char *key)
+{
+ return dict_encode_if_exists(&style_layer_dict, key);
+}
+
static inline const char *style_layer_decode(layer_t id)
{
return dict_decode(&style_layer_dict, id);