#pragma once #include #include #include #include #include #include #include "loggable.h" class Settings { public: enum Action { convert, help, printConfig, _actionsSize }; Settings(int argc, char **argv); std::string getInput() const; std::string getOutput() const; Loggable::Severity getLogLevel() const; Action getAction() const; private: void parseArguments(); static std::string_view stripFlags(const std::string_view& option); private: std::vector arguments; std::optional action; std::optional input; std::optional output; std::optional logLevel; };