Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Classes | Namespaces | Enumerations | Functions
cli.hpp File Reference

CLI11 option adapters, explicit parse outcomes and semantic application help. More...

#include <CLI/CLI.hpp>
#include <charconv>
#include <concepts>
#include <uni20/common/display.hpp>
#include <uni20/common/half_int.hpp>
#include <uni20/common/program.hpp>
Include dependency graph for cli.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  uni20::cli::parse_policy
 Executable policy for empty invocations and usage failures. More...
 
struct  uni20::cli::parse_result
 Owned parse outcome; parsing itself does not print, open files or terminate the process. More...
 

Namespaces

namespace  uni20
 
namespace  uni20::cli
 

Enumerations

enum class  uni20::cli::action {
  uni20::cli::run , uni20::cli::help , uni20::cli::version , uni20::cli::build_info ,
  uni20::cli::error
}
 The executable decides whether to calculate or render an informational/error result. More...
 
enum class  uni20::cli::no_arguments { uni20::cli::help , uni20::cli::run }
 Whether an empty invocation displays help or parses application defaults. More...
 

Functions

template<std::unsigned_integral T>
requires (!std::same_as<T, bool>)
CLI::Option * uni20::cli::add_count_option (CLI::App &app, std::string names, T &value, std::string description={})
 Bind an unsigned decimal count with complete-token, negative and overflow checks.
 
template<std::signed_integral T>
CLI::Option * uni20::cli::add_half_int_option (CLI::App &app, std::string names, basic_half_int< T > &value, std::string description={})
 Bind an exact half-integer, accepting integer, .0/.5 decimal and denominator-two fractional forms.
 
presentation::report_builder uni20::cli::build_info_report (presentation::program_info const &program)
 Build application and existing Uni20 build information without running numerical initialization.
 
void uni20::cli::configure (CLI::App &app, presentation::program_info const &program)
 Register common help/version/build-info actions on a single-command application.
 
std::vector< presentation::help_group > uni20::cli::help_groups (CLI::App const &app)
 Project CLI11 option metadata into parser-independent semantic help groups.
 
presentation::report_builder uni20::cli::help_report (CLI::App const &app, presentation::program_info const &program)
 Build full help from the same options used for parsing, plus application-supplied content.
 
parse_result uni20::cli::parse (CLI::App &app, int argc, char const *const *argv, parse_policy policy={})
 Parse argc/argv, preserving CLI11's argument boundaries and help precedence.
 
presentation::report_builder uni20::cli::result_report (CLI::App const &app, presentation::program_info const &program, parse_result const &result)
 Build the selected informational/error document; a run outcome has no document and is rejected.
 

Detailed Description

CLI11 option adapters, explicit parse outcomes and semantic application help.