Files
PkmnLib/src/Library/Items/ItemLibrary.hpp
Deukhoofd fff926b617
All checks were successful
continuous-integration/drone/push Build is passing
Mark several classes as final for devirtualization performance benefits.
2020-10-15 18:13:00 +02:00

24 lines
941 B
C++

#ifndef PKMNLIB_ITEMLIBRARY_HPP
#define PKMNLIB_ITEMLIBRARY_HPP
#include <CreatureLib/Library/ItemLibrary.hpp>
#include "Item.hpp"
namespace PkmnLib::Library {
class ItemLibrary final : public CreatureLib::Library::ItemLibrary {
public:
inline bool TryGet(const ArbUt::BasicStringView& name, ArbUt::BorrowedPtr<const Item>& item) const {
auto v = item.As<const CreatureLib::Library::Item>();
auto res = CreatureLib::Library::ItemLibrary::TryGet(name.GetHash(), v);
item = v.ForceAs<const Item>();
return res;
}
inline ArbUt::BorrowedPtr<const Item> Get(const ArbUt::BasicStringView& name) const {
return CreatureLib::Library::ItemLibrary::Get(name).ForceAs<const Item>();
}
inline ArbUt::BorrowedPtr<const Item> operator[](const ArbUt::BasicStringView& name) const { return Get(name); }
};
}
#endif // PKMNLIB_ITEMLIBRARY_HPP