From 4b2507efc3721fbeb8282e1831273d0a9c445ae6 Mon Sep 17 00:00:00 2001 From: BossCode45 Date: Wed, 1 Feb 2023 20:07:40 +1300 Subject: Better error checking for config --- config.h | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'config.h') diff --git a/config.h b/config.h index cfcf5bd..31005e7 100644 --- a/config.h +++ b/config.h @@ -1,5 +1,9 @@ #pragma once +#include "error.h" + +#include + #include #include @@ -51,7 +55,9 @@ class Config ~Config(); void free(); - void loadFromFile(std::string path); + Err loadFromFile(std::string path); + Err reload(); + // Startup std::string* startupBash; int startupBashc; @@ -72,4 +78,16 @@ class Config // Keybinds KeyBind* binds; int bindsc; + private: + template + T getValue(std::string path, Err* err); + + void loadWorkspaceArrays(toml::table tbl, toml::table defaults, Err* err); + void loadStartupBash(toml::table tbl, toml::table defaults, Err* err); + + toml::table tbl; + toml::table defaults; + + bool loaded = false; + std::string path; }; -- cgit v1.2.3