]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Add is_avalanching type hint
authorVsevolod Stakhov <vsevolod@rspamd.com>
Mon, 18 Jul 2022 16:38:52 +0000 (17:38 +0100)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Mon, 18 Jul 2022 16:38:52 +0000 (17:38 +0100)
src/libserver/css/css_property.hxx
src/libserver/css/css_rule.hxx
src/libserver/css/css_selector.hxx
src/libutil/cxx/hash_util.hxx

index 0e17e39fe43a280256a1061880dc7ceef2d3f815..7af6c7bd6dcd5d95fca4cad20ddcc34d0cd14b0a 100644 (file)
@@ -141,6 +141,7 @@ namespace std {
 template<>
 class hash<rspamd::css::css_property> {
 public:
+       using is_avalanching = void;
        /* Mix bits to provide slightly better distribution but being constexpr */
        constexpr size_t operator() (const rspamd::css::css_property &prop) const {
                std::size_t key = 0xdeadbeef ^static_cast<std::size_t>(prop.type);
index c942b8795b926b17056feabafbe69f546e04cf1d..df385bdadefbc01da361a19e9d06004f38a8e775 100644 (file)
@@ -73,6 +73,7 @@ namespace std {
 template<>
 class hash<rspamd::css::css_rule> {
 public:
+       using is_avalanching = void;
        constexpr auto operator()(const rspamd::css::css_rule &rule) const -> auto {
                return hash<rspamd::css::css_property>()(rule.get_prop());
        }
index 02cb783c40aa5031a9256c6aa3417b7b71274358..f49251338f827c16b284c774c6c5cca31fe3feb4 100644 (file)
@@ -106,6 +106,7 @@ namespace std {
 template<>
 class hash<rspamd::css::css_selector> {
 public:
+       using is_avalanching = void;
        auto operator() (const rspamd::css::css_selector &sel) const -> std::size_t {
                if (sel.type == rspamd::css::css_selector::selector_type::SELECTOR_TAG) {
                        return static_cast<std::size_t>(std::get<tag_id_t>(sel.value));
index afad29fa5fd8ed9fcf799787fe914b78ff77fe5a..86f09408383981e1033e8f47e3bb7f75ce545e0b 100644 (file)
@@ -80,6 +80,7 @@ struct smart_str_equal {
 
 struct smart_str_hash {
        using is_transparent = void;
+       using is_avalanching = typename ankerl::unordered_dense::hash<std::string_view>::is_avalanching;
        auto operator()(const std::string &a) const {
                return ankerl::unordered_dense::hash<std::string>()(a);
        }