/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef argparse_h__ #define argparse_h__ #include #include #include class ArgParser { public: ArgParser(const std::vector& arguments); bool Has(std::string arg) const { return programArgs_.count(arg) > 0; } std::string Get(std::string arg) const { return programArgs_.at(arg); } size_t GetPositionalArgumentCount() const { return positionalArgs_.size(); } std::string GetPositionalArgument(size_t pos) const { return positionalArgs_.at(pos); } private: std::unordered_map programArgs_; std::vector positionalArgs_; }; #endif // argparse_h__