The format that contains all helper functions needed in all formats for printing the interface description of the application (to std::cout).
More...
#include <seqan3/argument_parser/detail/format_base.hpp>
|
void | add_flag (bool &value, char const short_id, std::string const &long_id, std::string const &desc, option_spec const spec) |
| Adds a seqan3::print_list_item call to be evaluated later on. More...
|
|
void | add_line (std::string const &text, bool is_paragraph, option_spec const spec) |
| Adds a print_line call to parser_set_up_calls. More...
|
|
void | add_list_item (std::string const &key, std::string const &desc, option_spec const spec) |
| Adds a seqan3::print_list_item call to parser_set_up_calls. More...
|
|
template<typename option_type , typename validator_type > |
void | add_option (option_type &value, char const short_id, std::string const &long_id, std::string const &desc, option_spec const spec, validator_type &&option_validator) |
| Adds a seqan3::print_list_item call to be evaluated later on. More...
|
|
template<typename option_type , typename validator_type > |
void | add_positional_option (option_type &value, std::string const &desc, validator_type &option_validator) |
| Adds a seqan3::print_list_item call to be evaluated later on. More...
|
|
void | add_section (std::string const &title, option_spec const spec) |
| Adds a print_section call to parser_set_up_calls. More...
|
|
void | add_subsection (std::string const &title, option_spec const spec) |
| Adds a print_subsection call to parser_set_up_calls. More...
|
|
void | parse (argument_parser_meta_data &parser_meta) |
| Initiates the printing of the help page to std::cout. More...
|
|
template<typename derived_type>
class seqan3::detail::format_help_base< derived_type >
The format that contains all helper functions needed in all formats for printing the interface description of the application (to std::cout).
◆ format_help_base()
template<typename derived_type >
◆ add_flag()
template<typename derived_type >
Adds a seqan3::print_list_item call to be evaluated later on.
- Parameters
-
[in,out] | value | The variable in which to store the given command line argument. |
[in] | short_id | The short identifier for the flag (e.g. 'i'). |
[in] | long_id | The long identifier for the flag (e.g. "integer"). |
[in] | desc | The description of the flag to be shown in the help page. |
[in] | spec | Advanced flag specification, see seqan3::option_spec. |
◆ add_line()
template<typename derived_type >
Adds a print_line call to parser_set_up_calls.
- Parameters
-
[in] | text | The text to print. |
[in] | is_paragraph | Whether to insert as paragraph or just a line (Default: false). |
[in] | spec | Whether to always display this line (seqan3::option_spec::standard), only when showing the advanced help page (seqan3::option_spec::advanced) or never (seqan3::option_spec::hidden). |
If the line is not a paragraph (false), only one line break is appended, otherwise two line breaks are appended. This only affects the help page and other output formats.
◆ add_list_item()
template<typename derived_type >
Adds a seqan3::print_list_item call to parser_set_up_calls.
- Parameters
-
[in] | key | The key of the key-value pair of the list item. |
[in] | desc | The value of the key-value pair of the list item. |
[in] | spec | Whether to always display this list item (seqan3::option_spec::standard), only when showing the advanced help page (seqan3::option_spec::advanced) or never (seqan3::option_spec::hidden). |
Note: This only affects the help page and other output formats.
A list item is composed of a key (key
) and value (desc
) and usually used for option identifier-description-pairs. E.g.:
-a, --age LONG
Super important integer for age.
◆ add_option()
template<typename derived_type >
template<typename option_type , typename validator_type >
Adds a seqan3::print_list_item call to be evaluated later on.
- Template Parameters
-
option_type | Must have a formatted input function (stream >> value). If option_type is a container, its value type must have the formatted input function (exception: std::string is not regarded as a container). See FormattedInputFunction . |
validator_type | The type of validator to be applied to the option value. Must model seqan3::validator. |
- Parameters
-
[in,out] | value | The variable in which to store the given command line argument. |
[in] | short_id | The short identifier for the option (e.g. 'a'). |
[in] | long_id | The long identifier for the option (e.g. "age"). |
[in] | desc | The description of the option to be shown in the help page. |
[in] | spec | Advanced option specification, see seqan3::option_spec. |
[in] | option_validator | A seqan3::validator that verifies the value after parsing (callable). |
- Exceptions
-
◆ add_positional_option()
template<typename derived_type >
template<typename option_type , typename validator_type >
Adds a seqan3::print_list_item call to be evaluated later on.
- Template Parameters
-
option_type | Must have a formatted input function (stream >> value). If option_type is a container, its value type must have the formatted input function (exception: std::string is not regarded as a container). See FormattedInputFunction . |
validator_type | The type of validator to be applied to the option value. Must model seqan3::validator. |
- Parameters
-
[in,out] | value | The variable in which to store the given command line argument. |
[in] | desc | The description of the positional option to be shown in the help page. |
[in] | option_validator | A seqan3::validator that verifies the value after parsing (callable). |
- Exceptions
-
The validator must be applicable to the given output variable (value
).
◆ add_section()
template<typename derived_type >
Adds a print_section call to parser_set_up_calls.
- Parameters
-
[in] | title | The title of the section. |
[in] | spec | Whether to always display this section title (seqan3::option_spec::standard), only when showing the advanced help page (seqan3::option_spec::advanced) or never (seqan3::option_spec::hidden). |
This only affects the help page and other output formats.
◆ add_subsection()
template<typename derived_type >
Adds a print_subsection call to parser_set_up_calls.
- Parameters
-
[in] | title | The title of the subsection. |
[in] | spec | Whether to always display this subsection title (seqan3::option_spec::standard), only when showing the advanced help page (seqan3::option_spec::advanced) or never (seqan3::option_spec::hidden). |
This only affects the help page and other output formats.
◆ escape_special_xml_chars()
Escapes certain characters for correct output.
- Parameters
-
[in] | original | The string containing characters to be escaped. |
- Returns
- The original string as their corresponding html/xml representation.
Special characters considered are "
, \
, &
, <
and >
.
◆ expand_multiple_flags()
|
inlinestaticprotectedinherited |
Expands multiple one character flag identifiers for pretty help output.
- Parameters
-
[in] | flag_cluster | The string of one character flags. |
- Returns
- A string that lists all flags as a comma separated list.
e.g. "-agdg" becomes "-a, -g, -d and -g".
◆ get_type_name_as_string() [1/2]
template<sequence_container container_type>
static std::string seqan3::detail::format_base::get_type_name_as_string |
( |
container_type const & |
| ) |
|
|
inlinestaticprotectedinherited |
Returns the value_type
of the input container as a string (reflection).
- Template Parameters
-
container_type | The container type for which to query it's value_type. |
- Returns
- The type of the container value_type as a string.
◆ get_type_name_as_string() [2/2]
template<typename value_type >
|
inlinestaticprotectedinherited |
Returns the input type as a string (reflection).
- Template Parameters
-
- Returns
- The type of the value as a string.
◆ option_type_and_list_info() [1/2]
template<typename container_type >
static std::string seqan3::detail::format_base::option_type_and_list_info |
( |
container_type const & |
container | ) |
|
|
inlinestaticprotectedinherited |
Formats the container and its value_type for the help page printing.
- Template Parameters
-
- Parameters
-
[in] | container | The container to deduct the type from. |
- Returns
- The type of the container value type as a string, encapsulated in "List of".
◆ option_type_and_list_info() [2/2]
template<typename option_value_type >
static std::string seqan3::detail::format_base::option_type_and_list_info |
( |
option_value_type const & |
value | ) |
|
|
inlinestaticprotectedinherited |
Formats the type of a value for the help page printing.
- Template Parameters
-
option_value_type | The type of the option value to get the info for. |
- Parameters
-
[in] | value | The value to deduct the type from. |
- Returns
- The type of the value as string.
◆ parse()
template<typename derived_type >
Initiates the printing of the help page to std::cout.
- Parameters
-
[in] | parser_meta | The meta information that are needed for a detailed help page. |
◆ prep_id_for_help()
static std::string seqan3::detail::format_base::prep_id_for_help |
( |
char const |
short_id, |
|
|
std::string const & |
long_id |
|
) |
| |
|
inlinestaticprotectedinherited |
Formats the option/flag identifier pair for the help page printing.
- Parameters
-
[in] | short_id | The short identifier of the option/flag. |
[in] | long_id | The long identifier of the option/flag. |
- Returns
- The name of the short and long id, prepended with (double)dash.
e.g. "-i,--integer", "-i", or "--integer".
◆ print_line()
template<typename derived_type >
Delegates to seqan3::print_line(std::string const & text, true) of each format.
- Parameters
-
[in] | text | The text to print. |
◆ store_help_page_element()
template<typename derived_type >
Adds a function object to parser_set_up_calls if the annotation in spec
does not prevent it.
- Parameters
-
[in] | printer | The invokable that, if added to parser_set_up_calls , prints information to the help page. |
[in] | spec | The option specification deciding whether to add the information to the help page. |
If spec
equals seqan3::option_spec::hidden
, the information is never added to the help page. If spec
equals seqan3::option_spec::advanced
, the information is only added to the help page if the advanced help page has been queried on the command line (show_advanced_options == true
).
◆ meta
template<typename derived_type >
Stores all meta information about the application.
This needs to be a member of format_parse, because it needs to present (not filled) when the parser_set_up_calls vector is filled, since all printing functions need some meta information. The member variable itself is filled when copied over from the argument_parser when calling format_parse::parse. That way all the information needed are there, when the actual printing starts.
This function is not private because it is needed for short but nicely formatted (error) output to the command line.
The documentation for this class was generated from the following file: