-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfield_tests.cpp
49 lines (42 loc) · 1.34 KB
/
field_tests.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream>
#include "field.hpp"
void say(field::context& ctx, std::vector<const char *> values) {
std::cout << "passed values:" << std::endl;
for (const auto& v : values) {
std::cout << v << std::endl;
}
std::cout << "passed flags:" << std::endl;
for (auto& fl : ctx.passedFlags) {
std::cout << fl->name << std::endl;
}
std::cout << "overflowing values:" << std::endl;
for (auto& of : ctx.overflowValues) {
std::cout << of << std::endl;
}
}
void kill(field::context& ctx) {
std::cout << "kill all humanz!" << std::endl;
}
int main(int argc, char ** argv) {
field::parser parser;
parser.disableLock = true;
parser.add("say", say, 3);
parser.add("mute", say, 1);
parser.addFlag("-kill", kill);
parser.add("no-func", 1);
field::arg* ar = parser.parse(argc, argv);
if (ar->name == "no-func") {
std::cout << "passed values:" << std::endl;
for (const auto& v : ar->values()) {
std::cout << v << std::endl;
}
std::cout << "passed flags:" << std::endl;
for (auto& fl : parser.ctx.passedFlags) {
std::cout << fl->name << std::endl;
}
std::cout << "overflowing values:" << std::endl;
for (auto& of : parser.ctx.overflowValues) {
std::cout << of << std::endl;
}
}
}