#pragma once #include #include #include // Forward declaration for FS file or stream if needed, // but for now we'll take a string buffer or filename to keep it generic? // Or better, depend on FS.h to read files directly. #ifdef FILE_READ #undef FILE_READ #endif #ifdef FILE_WRITE #undef FILE_WRITE #endif #include namespace ThemeEngine { struct IniSection { std::string name; std::map properties; }; class IniParser { public: // Parse a stream (File, Serial, etc.) static std::map> parse(Stream& stream); // Parse a string buffer (useful for testing) static std::map> parseString(const std::string& content); private: static void trim(std::string& s); }; } // namespace ThemeEngine