From 8b37098a15005d4163db74d7eac977c593268118 Mon Sep 17 00:00:00 2001 From: "Claudius \"keldu\" Holeksa" Date: Tue, 9 Jul 2024 14:10:28 +0200 Subject: Preparing reverting Storage --- modules/tools/c++/c_gen_iface.hpp | 8 ++++---- modules/tools/c++/cli_analyzer.hpp | 40 +++++++++++++++++++------------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/modules/tools/c++/c_gen_iface.hpp b/modules/tools/c++/c_gen_iface.hpp index 7dffd04..60389dc 100644 --- a/modules/tools/c++/c_gen_iface.hpp +++ b/modules/tools/c++/c_gen_iface.hpp @@ -391,7 +391,7 @@ struct lang_bind, binding::SyncC> { { std::string hash_type_str = cfg.prefix + "_" + std::to_string(hash) + "_t"; - auto emp = state.hashes.emplace(std::make_pair(hash, hash_type_str)); + auto emp = state.hashes.emplace(std::make_pair(hash, language_binding_state::info{hash_type_str})); if(emp.second) { /** * We want this id to access the vector @@ -557,7 +557,7 @@ struct lang_bind...>, binding::SyncC> { constexpr uint64_t hash = schema_hash::apply(); std::string hash_type_str = cfg.prefix + "_" + std::to_string(hash) + "_t"; - auto emp = state.hashes.emplace(std::make_pair(hash, hash_type_str)); + auto emp = state.hashes.emplace(std::make_pair(hash, language_binding_state::info{hash_type_str})); /** * If successful insertion did happen that means we have no struct def yet. @@ -646,7 +646,7 @@ struct lang_bind, binding::SyncC> { constexpr uint32_t hash = schema_hash::apply(); std::string hash_type_str = cfg.prefix + "_" + std::to_string(hash) + "_t"; - auto emp = state.hashes.emplace(std::make_pair(hash, hash_type_str)); + auto emp = state.hashes.emplace(std::make_pair(hash, language_binding_state::info{hash_type_str})); if(emp.second){ auto& tpe = state.tp_elements; @@ -1127,7 +1127,7 @@ struct lang_bind, binding::SyncC> { constexpr uint64_t hash = schema_hash::apply(); std::string hash_type_str = cfg.prefix + "_" + std::to_string(hash) + "_t"; - auto emp = state.hashes.emplace(std::make_pair(hash, hash_type_str)); + auto emp = state.hashes.emplace(std::make_pair(hash, language_binding_state::info{hash_type_str})); if(!emp.second){ return make_error("Function should be guaranteed to be unique"); } diff --git a/modules/tools/c++/cli_analyzer.hpp b/modules/tools/c++/cli_analyzer.hpp index 885181e..ed54afa 100644 --- a/modules/tools/c++/cli_analyzer.hpp +++ b/modules/tools/c++/cli_analyzer.hpp @@ -17,7 +17,7 @@ struct cli_mode { struct list {}; }; -template +template struct cli_traverser { template static error_or traverse(std::deque& sch_path, data& enc_data, std::string& json_data){ @@ -25,10 +25,10 @@ struct cli_traverser { } }; -template +template struct cli_modifier { codec json; - static_assert( std::is_same_v, "Not supported" ); + static_assert( std::is_same_v, "Not supported" ); error_or read( std::deque& sch_path, @@ -66,12 +66,12 @@ struct cli_modifier { } }; -template -struct cli_traverser { +template +struct cli_traverser { using Schema = schema::String; template - static error_or traverse(std::deque& sch_path, data& enc_data, std::string& json_data){ + static error_or traverse(std::deque& sch_path, data& enc_data, std::string& json_data){ if(not sch_path.empty()){ return make_error("Schema path too long"); } @@ -88,8 +88,8 @@ struct cli_traverser { }; -template -struct cli_traverser, Encoding, Storage> { +template +struct cli_traverser, Encoding> { using Schema = schema::Tuple; template @@ -99,7 +99,7 @@ struct cli_traverser, Encoding, Storage> { std::string num_str = std::to_string(i); if( num_str == sch_path.front() ){ sch_path.pop_front(); - return cli_traverser::template traverse(sch_path, enc_data.template get(), json_data); + return cli_traverser::template traverse(sch_path, enc_data.template get(), json_data); } if ( (i+1) < sizeof...(T)){ @@ -112,18 +112,18 @@ struct cli_traverser, Encoding, Storage> { /** * Traverse the path until we hit the end of the provided path */ -template -struct cli_traverser...>, Encoding, Storage> { +template +struct cli_traverser...>, Encoding> { using Schema = schema::Struct...>; template - static error_or traverse_member(std::deque& sch_path, data& enc_data, std::string& json_data){ + static error_or traverse_member(std::deque& sch_path, data& enc_data, std::string& json_data){ using Type = typename parameter_pack_type::type; constexpr string_literal Literal = parameter_key_pack_type::literal; if ( Literal.view() == sch_path.front() ){ sch_path.pop_front(); - return cli_traverser::template traverse(sch_path, enc_data.template get(), json_data); + return cli_traverser::template traverse(sch_path, enc_data.template get(), json_data); } if constexpr ( (i+1) < sizeof...(T) ) { @@ -133,7 +133,7 @@ struct cli_traverser...>, Encoding, Storag } template - static error_or traverse(std::deque& sch_path, data& enc_data, std::string& json_data){ + static error_or traverse(std::deque& sch_path, data& enc_data, std::string& json_data){ /** * If our path is empty, then we have reached the desired destination. */ @@ -141,7 +141,7 @@ struct cli_traverser...>, Encoding, Storag /** * Decide during this step if we are reading or not */ - cli_modifier mod; + cli_modifier mod; if constexpr (std::is_same_v){ return mod.read(sch_path, enc_data, json_data); } else if constexpr (std::is_same_v) { @@ -167,7 +167,7 @@ struct parsed_args { std::deque sch_path; }; -template +template error_or modify_data_on_cli(const std::string_view& mode, const std::string_view& file_path, std::deque sch_path, std::string& json_data){ /** * Read data from file @@ -184,7 +184,7 @@ error_or modify_data_on_cli(const std::string_view& mode, const std::strin if(file_data.empty()){ return make_error("File exists, but is empty."); } - data enc_data{std::string_view{file_data}}; + data enc_data{std::string_view{file_data}}; codec enc_codec; data native_data; @@ -197,20 +197,20 @@ error_or modify_data_on_cli(const std::string_view& mode, const std::strin if (mode == "r") { { - auto eov = impl::cli_traverser::template traverse(sch_path, native_data, json_data); + auto eov = impl::cli_traverser::template traverse(sch_path, native_data, json_data); if(eov.is_error()){ return eov; } } } else if (mode == "w") { { - auto eov = impl::cli_traverser::template traverse(sch_path, native_data, json_data); + auto eov = impl::cli_traverser::template traverse(sch_path, native_data, json_data); if(eov.is_error()){ return eov; } } { - auto eov = enc_codec.template encode(native_data, enc_data); + auto eov = enc_codec.template encode(native_data, enc_data); if(eov.is_error()){ return eov; } -- cgit v1.2.3