diff options
Diffstat (limited to 'src/rpc/util.h')
-rw-r--r-- | src/rpc/util.h | 46 |
1 files changed, 38 insertions, 8 deletions
diff --git a/src/rpc/util.h b/src/rpc/util.h index b1ab64247c..11238ce9f7 100644 --- a/src/rpc/util.h +++ b/src/rpc/util.h @@ -43,24 +43,54 @@ struct RPCArg { const Type m_type; const std::vector<RPCArg> m_inner; //!< Only used for arrays or dicts const bool m_optional; + const std::string m_default_value; //!< Only used for optional args + const std::string m_description; const std::string m_oneline_description; //!< Should be empty unless it is supposed to override the auto-generated summary line - - RPCArg(const std::string& name, const Type& type, const bool optional, const std::string& oneline_description = "") - : m_name{name}, m_type{type}, m_optional{optional}, m_oneline_description{oneline_description} + const std::vector<std::string> m_type_str; //!< Should be empty unless it is supposed to override the auto-generated type strings. Vector length is either 0 or 2, m_type_str.at(0) will override the type of the value in a key-value pair, m_type_str.at(1) will override the type in the argument description. + + RPCArg( + const std::string& name, + const Type& type, + const bool opt, + const std::string& default_val, + const std::string& description, + const std::string& oneline_description = "", + const std::vector<std::string>& type_str = {}) + : m_name{name}, + m_type{type}, + m_optional{opt}, + m_default_value{default_val}, + m_description{description}, + m_oneline_description{oneline_description}, + m_type_str{type_str} { assert(type != Type::ARR && type != Type::OBJ); } - RPCArg(const std::string& name, const Type& type, const std::vector<RPCArg>& inner, const bool optional, const std::string& oneline_description = "") - : m_name{name}, m_type{type}, m_inner{inner}, m_optional{optional}, m_oneline_description{oneline_description} + RPCArg( + const std::string& name, + const Type& type, + const bool opt, + const std::string& default_val, + const std::string& description, + const std::vector<RPCArg>& inner, + const std::string& oneline_description = "", + const std::vector<std::string>& type_str = {}) + : m_name{name}, + m_type{type}, + m_inner{inner}, + m_optional{opt}, + m_default_value{default_val}, + m_description{description}, + m_oneline_description{oneline_description}, + m_type_str{type_str} { assert(type == Type::ARR || type == Type::OBJ); } - std::string ToString() const; - -private: + std::string ToString(bool oneline = false) const; std::string ToStringObj() const; + std::string ToDescriptionString(bool implicitly_required = false) const; }; class RPCHelpMan |