11USERVER_NAMESPACE_BEGIN
16struct HashSeed
final {
24 using is_transparent [[maybe_unused]] =
void;
33 std::size_t operator()(std::string_view s)
const&
noexcept;
35 template <
class StringStrongTypedef>
36 auto operator()(
const StringStrongTypedef& s)
const&
noexcept
37 ->
decltype(operator()(std::string_view{s.GetUnderlying()})) {
38 static_assert(
noexcept((*
this)(std::string_view{s.GetUnderlying()})),
39 "GetUnderlying() should not throw as this affects efficiency "
42 return (*
this)(std::string_view{s.GetUnderlying()});
45 HashSeed GetSeed()
const noexcept {
return seed_; }
54 using is_transparent [[maybe_unused]] =
void;
63 std::size_t operator()(std::string_view s)
const&
noexcept;
75 int operator()(std::string_view lhs, std::string_view rhs)
const noexcept;
81 using is_transparent [[maybe_unused]] =
void;
83 bool operator()(std::string_view lhs, std::string_view rhs)
const noexcept;
89 using is_transparent [[maybe_unused]] =
void;
91 bool operator()(std::string_view lhs, std::string_view rhs)
const noexcept;