85 inline constexpr void UpdateData(std::span<V, Extent> data)
noexcept
89 if (std::is_constant_evaluated())
91 static_assert(std::is_integral_v<V> || std::is_enum_v<V>,
"Only integral types can be hashed at compile time");
93 using I =
typename std::conditional_t<std::is_enum_v<V>, std::underlying_type<V>, std::type_identity<V>>::type;
97 for (std::size_t i = 0; i <
sizeof(V); ++i)
99 hash ^=
static_cast<T
>((
static_cast<I
>(c) >> (i * 8)) & 0xFF);
100 hash *= Constants::Prime;
106 std::byte
const* c =
reinterpret_cast<std::byte const*
>(data.data());
107 std::byte
const* end = c + data.size_bytes();
110 hash ^=
static_cast<T
>(*c);
111 hash *= Constants::Prime;