summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/common/Argument.cpp11
-rw-r--r--src/core/common/Argument.hpp20
2 files changed, 31 insertions, 0 deletions
diff --git a/src/core/common/Argument.cpp b/src/core/common/Argument.cpp
index 3461868..4e80f23 100644
--- a/src/core/common/Argument.cpp
+++ b/src/core/common/Argument.cpp
@@ -48,6 +48,17 @@ Argument::Argument(std::string name, const RttiType &type)
{
}
+
+Argument Argument::Any(std::string name)
+{
+ return Argument{name, RttiTypes::None, RttiTypes::None, nullptr, false};
+}
+
+Argument Argument::Any(std::string name, Variant defaultValue)
+{
+ return Argument{name, RttiTypes::None, RttiTypes::None, defaultValue, true};
+}
+
Argument Argument::Bool(std::string name)
{
return Argument{name, RttiTypes::Bool};
diff --git a/src/core/common/Argument.hpp b/src/core/common/Argument.hpp
index cb08fc3..7227ddb 100644
--- a/src/core/common/Argument.hpp
+++ b/src/core/common/Argument.hpp
@@ -119,6 +119,26 @@ public:
const bool hasDefault;
/**
+ * Named constructor for an argument with any type.
+ *
+ * @param name is the name of the argument as used for error messages and in
+ * case the arguments are given as a map.
+ * @return a new Argument instance.
+ */
+ static Argument Any(std::string name);
+
+ /**
+ * Named constructor for an argument with any type.
+ *
+ * @param name is the name of the argument as used for error messages and in
+ * case the arguments are given as a map.
+ * @param defaultValue is the default value to be used in case this argument
+ * is not supplied.
+ * @return a new Argument instance.
+ */
+ static Argument Any(std::string name, Variant defaultValue);
+
+ /**
* Named constructor for a boolean argument with no default value.
*
* @param name is the name of the argument as used for error messages and in