Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
program.hpp
Go to the documentation of this file.
1
5#pragma once
6
7#include "presentation.hpp"
8#include <functional>
9#include <span>
10
11namespace uni20::presentation
12{
15{
16 std::string command;
17 std::string description = {};
18};
19
22{
23 std::string key;
24 std::string citation;
25 std::string link = {};
26 std::string applicability = {};
27};
28
32{
33 std::string name;
34 std::string description = {};
35 std::string version = {};
36 std::string revision = {};
37 std::string copyright = {};
38 std::string authors = {};
39 std::string project_url = {};
40 std::string license = {};
41 std::vector<program_example> examples = {};
42 std::vector<std::string> notes = {};
43 std::function<std::vector<program_reference>()> references = {};
44};
45
48{
49 std::string names;
50 std::string description = {};
51 std::vector<std::string> attributes = {};
52};
53
56{
57 std::string heading;
58 std::string description = {};
59 std::vector<help_option> options = {};
60};
61
63[[nodiscard]] std::string program_identity(program_info const& program);
64
66[[nodiscard]] report_builder program_report(program_info const& program);
67
69[[nodiscard]] report_builder help_report(program_info const& program, std::string_view usage,
70 std::span<help_group const> groups);
71} // namespace uni20::presentation
Definition data_table.cpp:8
report_builder help_report(program_info const &program, std::string_view usage, std::span< help_group const > groups)
Construct a full help document shared by plain and styled renderers.
Definition program.cpp:24
report_builder program_report(program_info const &program)
Construct the application's banner without evaluating its reference provider.
Definition program.cpp:13
std::string program_identity(program_info const &program)
Concise application identity for version output and report headings.
Definition program.cpp:5
An ordered group of options in a help document.
Definition program.hpp:56
std::string heading
Definition program.hpp:57
std::vector< help_option > options
Definition program.hpp:59
std::string description
Definition program.hpp:58
One option's semantic help content, projected from the parser's declarations.
Definition program.hpp:48
std::string description
Definition program.hpp:50
std::string names
Definition program.hpp:49
std::vector< std::string > attributes
Definition program.hpp:51
One invocation and its purpose, supplied by the application.
Definition program.hpp:15
std::string description
Definition program.hpp:17
std::string command
Definition program.hpp:16
Application identity and explanatory content, independent of any option parser.
Definition program.hpp:32
std::string revision
Definition program.hpp:36
std::string copyright
Definition program.hpp:37
std::string version
Definition program.hpp:35
std::function< std::vector< program_reference >()> references
Definition program.hpp:43
std::vector< std::string > notes
Definition program.hpp:42
std::string project_url
Definition program.hpp:39
std::string authors
Definition program.hpp:38
std::string name
Definition program.hpp:33
std::string description
Definition program.hpp:34
std::vector< program_example > examples
Definition program.hpp:41
std::string license
Definition program.hpp:40
A literature entry supplied by the application's authoritative citation registry.
Definition program.hpp:22
std::string link
Definition program.hpp:25
std::string citation
Definition program.hpp:24
std::string key
Definition program.hpp:23
std::string applicability
Definition program.hpp:26