You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

60 line
1.2 KiB

  1. #pragma once
  2. #include <cppargs/misc/misc.inl>
  3. #include "option.h"
  4. namespace cppargs
  5. {
  6. option_meta& option_meta::set_short_name(char value)
  7. {
  8. short_name = value;
  9. return *this;
  10. }
  11. option_meta& option_meta::set_long_name(const std::string& value)
  12. {
  13. long_name = value;
  14. return *this;
  15. }
  16. option_meta& option_meta::set_description(const std::string& value)
  17. {
  18. description = value;
  19. return *this;
  20. }
  21. option_meta& option_meta::set_arguments(const std::string& value)
  22. {
  23. arguments = value;
  24. return *this;
  25. }
  26. option_meta& option_meta::set_default_value(const std::string& value)
  27. {
  28. default_value = value;
  29. return *this;
  30. }
  31. option_meta& option_meta::set_mandatory(bool value)
  32. {
  33. mandatory = value;
  34. return *this;
  35. }
  36. template<typename T_value>
  37. option_meta option_meta::prepare_arguments(const option_meta& meta)
  38. {
  39. option_meta m = meta;
  40. if (m.arguments.empty())
  41. m.arguments = argument_props<T_value>::type();
  42. return m;
  43. }
  44. option::option(const option_meta& p_meta)
  45. : meta(p_meta)
  46. { }
  47. }