1#ifndef AAPT_FLAG_H
2#define AAPT_FLAG_H
3
4#include "StringPiece.h"
5
6#include <functional>
7#include <string>
8#include <vector>
9
10namespace aapt {
11namespace flag {
12
13void requiredFlag(const StringPiece& name, const StringPiece& description,
14                  std::function<void(const StringPiece&)> action);
15
16void requiredFlag(const StringPiece& name, const StringPiece& description,
17                  std::function<bool(const StringPiece&, std::string*)> action);
18
19void optionalFlag(const StringPiece& name, const StringPiece& description,
20                  std::function<void(const StringPiece&)> action);
21
22void optionalSwitch(const StringPiece& name, const StringPiece& description, bool resultWhenSet,
23                    bool* result);
24
25void usageAndDie(const StringPiece& command);
26
27void parse(int argc, char** argv, const StringPiece& command);
28
29const std::vector<std::string>& getArgs();
30
31} // namespace flag
32} // namespace aapt
33
34#endif // AAPT_FLAG_H
35