GCC Code Coverage Report


Directory: ./
File: src/cli/command.h
Date: 2023-04-27 00:55:30
Exec Total Coverage
Lines: 5 6 83.3%
Functions: 4 6 66.7%
Branches: 2 4 50.0%

Line Branch Exec Source
1
2 #pragma once
3
4 #include "../dtypes.h"
5
6 #include <argparse/argparse.hpp>
7 #include <memory>
8
9 namespace lython {
10
11 using ArgumentParser = Unique<argparse::ArgumentParser>;
12
13 struct Command {
14 const String name;
15 ArgumentParser args;
16
17 Command(String name_): name(name_) {}
18
19 virtual ~Command() {}
20
21 argparse::ArgumentParser* new_parser() {
22 72 args = std::make_unique<argparse::ArgumentParser>(
23
1/2
✓ Branch 2 taken 72 times.
✗ Branch 3 not taken.
72 name.c_str(), "", argparse::default_arguments::help);
24 72 return args.get();
25 }
26
27 virtual argparse::ArgumentParser* parser() { return nullptr; }
28
29 int exec() {
30
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
1 if (!args) {
31 return -1;
32 }
33 1 return main(*args.get());
34 }
35
36 virtual int main(argparse::ArgumentParser const& args) { return 0; };
37 };
38
39 } // namespace lython
40