36 lines
633 B
C++
36 lines
633 B
C++
#pragma once
|
|
|
|
#include "RE/B/BSTHashMap.h"
|
|
|
|
namespace RE
|
|
{
|
|
namespace BSShaderTechniqueIDMap
|
|
{
|
|
template <class T>
|
|
class HashPolicy
|
|
{
|
|
public:
|
|
[[nodiscard]] std::uint32_t operator()(const T a_shader) const noexcept
|
|
{
|
|
assert(a_shader != nullptr);
|
|
return a_shader->id;
|
|
}
|
|
};
|
|
|
|
template <class T>
|
|
class ComparePolicy
|
|
{
|
|
public:
|
|
[[nodiscard]] bool operator()(const T a_lhs, const T a_rhs) const noexcept
|
|
{
|
|
assert(a_lhs != nullptr);
|
|
assert(a_rhs != nullptr);
|
|
return a_lhs->id == a_rhs->id;
|
|
}
|
|
};
|
|
|
|
template <class T>
|
|
using MapType = BSTSet<T, HashPolicy<T>, ComparePolicy<T>>;
|
|
}
|
|
}
|