[nostalgia/studio] Change configio functions to take auto string type
This commit is contained in:
parent
fdc57ce7b8
commit
6908199428
@ -36,8 +36,8 @@ constexpr auto ConfigDir = [] {
|
||||
}();
|
||||
|
||||
template<typename T>
|
||||
ox::Result<T> readConfig(core::Context *ctx, const ox::String &name) noexcept {
|
||||
oxAssert(name != "", "Config type has no TypeName");
|
||||
ox::Result<T> readConfig(core::Context *ctx, const char *name) noexcept {
|
||||
oxAssert(ox_strcmp(name, ""), "Config type has no TypeName");
|
||||
const auto homeDir = std::getenv("HOME");
|
||||
const auto configPath = ox::sfmt(ConfigDir, homeDir, ctx->appName).toStdString();
|
||||
const auto path = ox::sfmt("{}/{}.json", configPath, name).toStdString();
|
||||
@ -65,8 +65,8 @@ ox::Result<T> readConfig(core::Context *ctx) noexcept {
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
ox::Error writeConfig(core::Context *ctx, const ox::String &name, T *data) noexcept {
|
||||
oxAssert(name != "", "Config type has no TypeName");
|
||||
ox::Error writeConfig(core::Context *ctx, const auto &name, T *data) noexcept {
|
||||
oxAssert(ox_strcmp(name, ""), "Config type has no TypeName");
|
||||
const auto homeDir = std::getenv("HOME");
|
||||
const auto configPath = ox::sfmt(ConfigDir, homeDir, ctx->appName).toStdString();
|
||||
const auto path = ox::sfmt("{}/{}.json", configPath, name).toStdString();
|
||||
@ -98,7 +98,7 @@ ox::Error writeConfig(core::Context *ctx, T *data) noexcept {
|
||||
}
|
||||
|
||||
template<typename T, typename Func>
|
||||
void openConfig(core::Context *ctx, const ox::String &name, Func f) noexcept {
|
||||
void openConfig(core::Context *ctx, const auto &name, Func f) noexcept {
|
||||
oxAssert(name != "", "Config type has no TypeName");
|
||||
const auto c = readConfig<T>(ctx, name);
|
||||
f(&c.value);
|
||||
@ -111,8 +111,8 @@ void openConfig(core::Context *ctx, Func f) noexcept {
|
||||
}
|
||||
|
||||
template<typename T, typename Func>
|
||||
void editConfig(core::Context *ctx, const ox::String &name, Func f) noexcept {
|
||||
oxAssert(name != "", "Config type has no TypeName");
|
||||
void editConfig(core::Context *ctx, const auto &name, Func f) noexcept {
|
||||
oxAssert(ox_strcmp(name, ""), "Config type has no TypeName");
|
||||
auto c = readConfig<T>(ctx, name);
|
||||
f(&c.value);
|
||||
oxLogError(writeConfig(ctx, name, &c.value));
|
||||
|
Loading…
Reference in New Issue
Block a user