26namespace kaycxx::cli {
36template <parseable_value T>
73 default_values_ = std::move(
values);
82 return std::format(
"<{}>...",
name());
91 return default_values_ ? 0 : min_count_;
113 if (
values.empty() && default_values_) {
114 validate_count(default_values_->size());
115 return *default_values_;
118 validate_count(
values.size());
120 auto result = std::vector<T>();
142 void validate_count(std::size_t
count)
const {
143 if (
count < min_count_) {
146 if (count > max_count_) {
147 throw parse_error(std::format(
"Too many values for parameter <{}>",
name()));
152 std::size_t min_count_ = 0;
155 std::size_t max_count_ = std::numeric_limits<std::size_t>::max();
158 std::optional<std::vector<T>> default_values_;
Handle for a registered option.
Definition option_handle.hpp:25
Common base class for positional parameter definitions.
Definition parameter_base.hpp:23
std::optional< std::string > const & description() const noexcept
Returns the parameter description.
std::string const & name() const noexcept
Returns the parameter name.
Typed positional parameter list definition.
Definition parameters.hpp:37
std::any parse_values(std::span< std::string_view const > values) const override
Parses this positional parameter list.
Definition parameters.hpp:112
void min(std::size_t count) noexcept
Sets the minimum number of values consumed by this parameter list.
Definition parameters.hpp:54
std::string usage() const override
Returns generated help usage for this parameter list.
Definition parameters.hpp:81
std::size_t min_count() const noexcept override
Returns the minimum number of values consumed by this parameter list.
Definition parameters.hpp:90
void default_values(std::vector< T > values)
Sets default values for this parameter list.
Definition parameters.hpp:72
void max(std::size_t count) noexcept
Sets the maximum number of values consumed by this parameter list.
Definition parameters.hpp:63
parameters(std::string_view name, std::optional< std::string_view > description=std::nullopt)
Creates a positional parameter list definition.
Definition parameters.hpp:45
std::size_t max_count() const noexcept override
Returns the maximum number of values consumed by this parameter list.
Definition parameters.hpp:99
Error thrown when command line arguments cannot be parsed.
Definition parse_error.hpp:19
Defines the common base class for positional parameters.
Defines the command line parse error type.
Defines value parsing support used by typed options and positional parameters.