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()})) {
39 noexcept((*
this)(std::string_view{s.GetUnderlying()})),
40 "GetUnderlying() should not throw as this affects efficiency "
44 return (*
this)(std::string_view{s.GetUnderlying()});
47 HashSeed GetSeed()
const noexcept {
return seed_; }
56 using is_transparent [[maybe_unused]] =
void;
65 std::size_t operator()(std::string_view s)
const&
noexcept;
77 int operator()(std::string_view lhs, std::string_view rhs)
const noexcept;
83 using is_transparent [[maybe_unused]] =
void;
85 bool operator()(std::string_view lhs, std::string_view rhs)
const noexcept;
91 using is_transparent [[maybe_unused]] =
void;
93 bool operator()(std::string_view lhs, std::string_view rhs)
const noexcept;