diff options
Diffstat (limited to 'common')
-rw-r--r-- | common/idstring.h | 2 | ||||
-rw-r--r-- | common/idstringlist.h | 9 |
2 files changed, 11 insertions, 0 deletions
diff --git a/common/idstring.h b/common/idstring.h index c3ccbc6b..aba40ae6 100644 --- a/common/idstring.h +++ b/common/idstring.h @@ -56,6 +56,8 @@ struct IdString bool operator!=(const IdString &other) const { return index != other.index; } bool empty() const { return index == 0; } + + unsigned int hash() const { return index; } }; NEXTPNR_NAMESPACE_END diff --git a/common/idstringlist.h b/common/idstringlist.h index 24a46731..753b408c 100644 --- a/common/idstringlist.h +++ b/common/idstringlist.h @@ -22,6 +22,7 @@ #define IDSTRING_LIST_H #include <boost/functional/hash.hpp> +#include "hashlib.h" #include "idstring.h" #include "nextpnr_namespaces.h" #include "sso_array.h" @@ -67,6 +68,14 @@ struct IdStringList static IdStringList concat(IdStringList a, IdStringList b); IdStringList slice(size_t s, size_t e) const; + + unsigned int hash() const + { + unsigned int h = mkhash_init; + for (const auto &val : ids) + h = mkhash(h, val.hash()); + return h; + } }; NEXTPNR_NAMESPACE_END |