#pragma once
#include "defs.h"
#include "../hash.h"
namespace
std {
template
<>
struct
hash<panda::string_view> {
size_t
operator() (panda::string_view v)
const
{
return
panda::hash::hashXX<
size_t
>(v);
}
};
template
<>
struct
hash<panda::u16string_view> {
size_t
operator() (panda::u16string_view v)
const
{
return
panda::hash::hashXX<
size_t
>(panda::string_view((
const
char
*)v.data(), v.length() *
sizeof
(
char16_t
)));
}
};
template
<>
struct
hash<panda::u32string_view> {
size_t
operator() (panda::u32string_view v)
const
{
return
panda::hash::hashXX<
size_t
>(panda::string_view((
const
char
*)v.data(), v.length() *
sizeof
(
char32_t
)));
}
};
template
<>
struct
hash<panda::wstring_view> {
size_t
operator() (panda::wstring_view v)
const
{
return
panda::hash::hashXX<
size_t
>(panda::string_view((
const
char
*)v.data(), v.length() *
sizeof
(
wchar_t
)));
}
};
}