Sharg 1.1.2-rc.1
The argument parser for bio-c++ tools.
Loading...
Searching...
No Matches
sharg::detail::format_base Class Reference

The format that contains all helper functions needed in all formats. More...

#include <sharg/detail/format_base.hpp>

+ Inheritance diagram for sharg::detail::format_base:

Static Protected Member Functions

template<typename value_type >
static std::string get_type_name_as_string (value_type const &)
 Returns the input type as a string (reflection).
 
template<detail::is_container_option container_type>
static std::string get_type_name_as_string (container_type const &)
 Returns the value_type of the input container as a string (reflection).
 
template<typename option_value_type >
static std::string option_type_and_list_info (option_value_type const &value)
 Formats the type of a value for the help page printing.
 
template<detail::is_container_option container_type>
static std::string option_type_and_list_info (container_type const &container)
 Formats the container and its value_type for the help page printing.
 
static std::string prep_id_for_help (char const short_id, std::string const &long_id)
 Formats the option/flag identifier pair for the help page printing.
 
static std::string escape_special_xml_chars (std::string const &original)
 Escapes certain characters for correct output.
 
static std::string expand_multiple_flags (std::string const &flag_cluster)
 Expands multiple one character flag identifiers for pretty help output.
 
template<typename option_type , typename default_type >
static std::string get_default_message (option_type const &option, default_type const &value)
 Returns the default message for the help page.
 

Detailed Description

The format that contains all helper functions needed in all formats.

Remarks
For a complete overview, take a look at Parser

Member Function Documentation

◆ escape_special_xml_chars()

static std::string sharg::detail::format_base::escape_special_xml_chars ( std::string const & original)
inlinestaticprotected

Escapes certain characters for correct output.

Parameters
[in]originalThe string containing characters to be escaped.
Returns
The original string as their corresponding html/xml representation.

Special characters considered are ", \, &, < and >.

◆ expand_multiple_flags()

static std::string sharg::detail::format_base::expand_multiple_flags ( std::string const & flag_cluster)
inlinestaticprotected

Expands multiple one character flag identifiers for pretty help output.

Parameters
[in]flag_clusterThe 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_default_message()

template<typename option_type , typename default_type >
static std::string sharg::detail::format_base::get_default_message ( option_type const & option,
default_type const & value )
inlinestaticprotected

Returns the default message for the help page.

Template Parameters
option_typeThe type of the option.
default_typeThe type of the default value.
Parameters
[in]optionThe option to get the default message for.
[in]valueThe default value to get the default message for.
Returns
The default message for the help page (" Default: <default-value>. ").

value is either config.default_message, or the same as option. If the option_type is a std::string or std::filesystem::path, the value is quoted. If the option_type is a container of std::string or std::filesystem::path, each individual value is quoted; if a config.default_message is provided, it will not be quoted.

◆ get_type_name_as_string() [1/2]

template<detail::is_container_option container_type>
static std::string sharg::detail::format_base::get_type_name_as_string ( container_type const & )
inlinestaticprotected

Returns the value_type of the input container as a string (reflection).

Template Parameters
container_typeThe 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 >
static std::string sharg::detail::format_base::get_type_name_as_string ( value_type const & )
inlinestaticprotected

Returns the input type as a string (reflection).

Template Parameters
value_typeThe type whose name is converted std::string.
Returns
The type of the value as a string.

◆ option_type_and_list_info() [1/2]

template<detail::is_container_option container_type>
static std::string sharg::detail::format_base::option_type_and_list_info ( container_type const & container)
inlinestaticprotected

Formats the container and its value_type for the help page printing.

Template Parameters
container_typeA type that must satisfy the sharg::detail::is_container_option.
Parameters
[in]containerThe 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 sharg::detail::format_base::option_type_and_list_info ( option_value_type const & value)
inlinestaticprotected

Formats the type of a value for the help page printing.

Template Parameters
option_value_typeThe type of the option value to get the info for.
Parameters
[in]valueThe value to deduct the type from.
Returns
The type of the value as string.

◆ prep_id_for_help()

static std::string sharg::detail::format_base::prep_id_for_help ( char const short_id,
std::string const & long_id )
inlinestaticprotected

Formats the option/flag identifier pair for the help page printing.

Parameters
[in]short_idThe short identifier of the option/flag.
[in]long_idThe 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".


The documentation for this class was generated from the following file:
Hide me