--- /dev/null
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+/** \file zypp/base/Hash.h
+ *
+*/
+#ifndef ZYPP_BASE_HASH_H
+#define ZYPP_BASE_HASH_H
+
+#include <string>
+
+#include <ext/hash_set>
+#include <ext/hash_map>
+#include <ext/hash_fun.h>
+
+///////////////////////////////////////////////////////////////////
+namespace __gnu_cxx
+{ /////////////////////////////////////////////////////////////////
+
+ /** Specialize hash function for std::string. */
+ template<>
+ struct hash<std::string>
+ {
+ size_t operator()( const std::string & __s ) const
+ { return __stl_hash_string(__s.c_str()); }
+ };
+
+ /////////////////////////////////////////////////////////////////
+} // namespace __gnu_cxx
+///////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+namespace zypp
+{ /////////////////////////////////////////////////////////////////
+
+ using __gnu_cxx::hash_set;
+ using __gnu_cxx::hash_map;
+
+ /////////////////////////////////////////////////////////////////
+} // namespace zypp
+///////////////////////////////////////////////////////////////////
+#endif // ZYPP_BASE_HASH_H