| 530 | |
| 531 | template<typename T> |
| 532 | bool arg_in_range(T value, const arg_desc_t& desc, std::ostream& os) { |
| 533 | auto range = desc.find("range"); |
| 534 | if (range == desc.end()) { |
| 535 | return true; |
| 536 | } |
| 537 | auto min_max = get_str_list(string(range->second), "|"); |
| 538 | auto min = str_to_num<T>(min_max.front()); |
| 539 | auto max = std::numeric_limits<T>::max(); |
| 540 | if (min_max.size() > 1) { |
| 541 | max = str_to_num<T>(min_max.back()); |
| 542 | } |
| 543 | if (value < min || value > max) { |
| 544 | os << "'" << value << "' out of range: " << min_max; |
| 545 | return false; |
| 546 | } |
| 547 | return true; |
| 548 | } |
| 549 | |
| 550 | bool validate_str_arg(std::string_view value, |
| 551 | std::string_view type, |
no test coverage detected