From 1196423f02bee014c7e9d36194d282f2d5772b35 Mon Sep 17 00:00:00 2001 From: cryptozoidberg Date: Mon, 22 Apr 2024 23:28:36 +0400 Subject: [PATCH] fixes over documentation autogen --- .../include/net/http_server_handlers_map2.h | 37 ++++++++++++++++--- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/contrib/epee/include/net/http_server_handlers_map2.h b/contrib/epee/include/net/http_server_handlers_map2.h index 61acf12f..b4466ad4 100644 --- a/contrib/epee/include/net/http_server_handlers_map2.h +++ b/contrib/epee/include/net/http_server_handlers_map2.h @@ -47,7 +47,7 @@ namespace epee t_param params; BEGIN_KV_SERIALIZE_MAP() - KV_SERIALIZE(jsonrpc) + KV_SERIALIZE(jsonrpc) DOC_DSCR("") DOC_EXMP("2.0") DOC_END KV_SERIALIZE(id) KV_SERIALIZE(method) KV_SERIALIZE(params) @@ -98,7 +98,7 @@ namespace epee t_param result; epee::serialization::storage_entry id; BEGIN_KV_SERIALIZE_MAP() - KV_SERIALIZE(jsonrpc) + KV_SERIALIZE(jsonrpc) DOC_DSCR("") DOC_EXMP("2.0") DOC_END KV_SERIALIZE(id) KV_SERIALIZE(result) END_KV_SERIALIZE_MAP() @@ -187,6 +187,24 @@ template void f(T) {} // Definition #2 +// Base template +template +struct is_std_simple_container : std::false_type {}; + +// Specializations for each container +template +struct is_std_simple_container> : std::true_type {}; + +template +struct is_std_simple_container> : std::true_type {}; + +template +struct is_std_simple_container> : std::true_type {}; + +template +struct is_std_simple_container> : std::true_type {}; + + template bool auto_doc(const std::string& uri, const std::string& method, bool is_json, documentation& docs) { @@ -202,11 +220,20 @@ bool auto_doc(const std::string& uri, const std::string& method, bool is_json, d { //json rpc-like call typedef typename epee::json_rpc::request request_t; - typedef typename epee::json_rpc::request response_t; + typedef typename epee::json_rpc::response response_t; request_t req = AUTO_VAL_INIT(req); //get_documentation_json_struct(); - response_t res = AUTO_VAL_INIT(res); //get_documentation_json_struct(); - + if constexpr (is_std_simple_container::value) + { + req.params.resize(1); + } + + response_t res = AUTO_VAL_INIT(res); + if constexpr (is_std_simple_container::value) + { + req.result.resize(1); + } + req.method = method; epee::serialization::portable_storage_extended_doc ps; req.store(ps, nullptr); ps.dump_as_json(docs.entries.back().request_json_example);