FeatherMC/src/config/Properties.cpp

48 lines
1.0 KiB
C++

#include "Properties.h"
#include "../util/StringUtil.h"
static const string STRING_TRUE("true");
static const string STRING_FALSE("false");
namespace Feather::Config
{
template <>
string Properties::Get<string>(string_view key)
{
return properties.at(string(key));
}
template <>
bool Properties::Get<bool>(string_view key)
{
string value = Get<string>(key);
if (StringUtil::iequal(value, STRING_TRUE))
{
return true;
}
else
{
// Java's Boolean.valueOf does not care about anything other than "true"
return false;
}
}
template <>
int Properties::Get<int>(string_view key)
{
return std::stoi(Get<string>(key));
}
template <>
long Properties::Get<long>(string_view key)
{
return std::stol(Get<string>(key));
}
template <>
long long Properties::Get<long long>(string_view key)
{
return std::stoll(Get<string>(key));
}
}