#pragma once

#include "deimos/core/base.h"
#include "deimos/core/hash.h"

namespace deimos
{

struct IdName
{
    uint128_t hash;
    gsl::czstring name;

    explicit constexpr IdName(gsl::czstring name_) :
        hash{MurmurHash3_x64_128(name_)},
        name{name_}
    {}

    constexpr bool operator==(const IdName& other) const
    {
        return hash == other.hash;
    }
};

} // namespace deimos