CLI11
C++11 Command Line Interface Parser
|
#include <Validators.hpp>
Public Types | |
enum | Options { CASE_SENSITIVE = 0, CASE_INSENSITIVE = 1, UNIT_OPTIONAL = 0, UNIT_REQUIRED = 2, DEFAULT = CASE_INSENSITIVE | UNIT_OPTIONAL } |
Public Member Functions | |
template<typename Number > | |
AsNumberWithUnit (std::map< std::string, Number > mapping, Options opts=DEFAULT, const std::string &unit_name="UNIT") | |
![]() | |
Validator (std::string validator_desc) | |
Construct a Validator with just the description string. | |
Validator (std::function< std::string(std::string &)> op, std::string validator_desc, std::string validator_name="") | |
Validator & | operation (std::function< std::string(std::string &)> op) |
Set the Validator operation function. | |
std::string | operator() (std::string &str) const |
std::string | operator() (const std::string &str) const |
Validator & | description (std::string validator_desc) |
Specify the type string. | |
std::string | get_description () const |
Generate type description information for the Validator. | |
Validator & | name (std::string validator_name) |
Specify the type string. | |
const std::string & | get_name () const |
Get the name of the Validator. | |
Validator & | active (bool active_val=true) |
Specify whether the Validator is active or not. | |
Validator & | non_modifying (bool no_modify=true) |
Specify whether the Validator can be modifying or not. | |
bool | get_active () const |
Get a boolean if the validator is active. | |
bool | get_modifying () const |
Get a boolean if the validator is allowed to modify the input returns true if it can modify the input. | |
Validator | operator& (const Validator &other) const |
Validator | operator| (const Validator &other) const |
Validator | operator! () const |
Create a validator that fails when a given validator succeeds. | |
Additional Inherited Members | |
![]() | |
std::function< std::string()> | desc_function_ {[]() { return std::string{}; }} |
This is the description function, if empty the description_ will be used. | |
std::function< std::string(std::string &)> | func_ {[](std::string &) { return std::string{}; }} |
std::string | name_ |
The name for search purposes of the Validator. | |
bool | active_ {true} |
Enable for Validator to allow it to be disabled if need be. | |
bool | non_modifying_ {false} |
specify that a validator should not modify the input | |
Multiply a number by a factor using given mapping. Can be used to write transforms for SIZE or DURATION inputs.
Example: With mapping = {"b"->1, "kb"->1024, "mb"->1024*1024}
one can recognize inputs like "100", "12kb", "100 MB", that will be automatically transformed to 100, 14448, 104857600.
Output number type matches the type in the provided mapping. Therefore, if it is required to interpret real inputs like "0.42 s", the mapping should be of a type <string, float> or <string, double>.
Adjust AsNumberWithUnit behavior. CASE_SENSITIVE/CASE_INSENSITIVE controls how units are matched. UNIT_OPTIONAL/UNIT_REQUIRED throws ValidationError if UNIT_REQUIRED is set and unit literal is not found.