#pragma once

#include "numeric.h"
#include <util/str_stl.h>

template <typename TOne>
constexpr size_t MultiHash(const TOne& one) noexcept {
    return THash<TOne>()(one);
}

template <typename THead, typename... TTail>
constexpr size_t MultiHash(const THead& head, const TTail&... tail) noexcept {
    return CombineHashes(MultiHash(tail...), THash<THead>()(head));
}