#pragma once #include #include #include #include #include "util/macros.h" #include "weather.h" // TODO: Make config values optional and supply defaults class General { private: std::string m_Name; public: General(std::string name); [[nodiscard]] fn getName() const -> const std::string; }; class NowPlaying { private: bool m_Enabled; public: NowPlaying(bool enabled); [[nodiscard]] fn getEnabled() const -> bool; }; class Config { private: General m_General; NowPlaying m_NowPlaying; Weather m_Weather; public: Config(General general, NowPlaying now_playing, Weather weather); static fn getInstance() -> const Config&; [[nodiscard]] fn getWeather() const -> const Weather; [[nodiscard]] fn getGeneral() const -> const General; [[nodiscard]] fn getNowPlaying() const -> const NowPlaying; }; // reflect-cpp Stuff DEF_IMPL(General, general, std::string name) DEF_IMPL(NowPlaying, now_playing, std::optional enabled) DEF_IMPL(Config, config, General general; NowPlaying now_playing; Weather weather) namespace rfl::parsing { template struct Parser : public CustomParser {}; template struct Parser : public CustomParser {}; template struct Parser : public CustomParser {}; }