| /* 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 <string> |
| #include <unordered_map> |
| #include <vector> |
| |
| class ArgParser { |
| public: |
| ArgParser(const std::vector<std::string>& 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<std::string, std::string> programArgs_; |
| std::vector<std::string> positionalArgs_; |
| }; |
| |
| #endif // argparse_h__ |