// SPDX-License-Identifier: MIT #pragma once #include #include #include namespace FEX::ArgLoader { class ArgLoader final : public FEXCore::Config::Layer { public: explicit ArgLoader(int argc, char** argv) : FEXCore::Config::Layer(FEXCore::Config::LayerType::LAYER_ARGUMENTS) , argc {argc} , argv {argv} { PreLoad(); } void Load() override { // Intentional no-op. } void PreLoad(); fextl::vector Get() { return RemainingArgs; } fextl::vector GetParsedArgs() { return ProgramArguments; } private: int argc {}; char** argv {}; fextl::vector RemainingArgs {}; fextl::vector ProgramArguments {}; }; } // namespace FEX::ArgLoader