diff --git a/src/core/smallmap_type.hpp b/src/core/smallmap_type.hpp index 060a36d272..dda0fc2a1e 100644 --- a/src/core/smallmap_type.hpp +++ b/src/core/smallmap_type.hpp @@ -49,6 +49,19 @@ struct SmallMap : SmallVector, S> { /** Data are freed in SmallVector destructor */ inline ~SmallMap() { } + /** + * Finds given key in this map + * @param key key to find + * @return &Pair(key, data) if found, this->End() if not + */ + inline const Pair *Find(const T &key) const + { + for (uint i = 0; i < this->items; i++) { + if (key == this->data[i].first) return &this->data[i]; + } + return this->End(); + } + /** * Finds given key in this map * @param key key to find @@ -67,7 +80,7 @@ struct SmallMap : SmallVector, S> { * @param key key to test * @return true iff the item is present */ - inline bool Contains(const T &key) + inline bool Contains(const T &key) const { return this->Find(key) != this->End(); }