diff options
Diffstat (limited to 'modules/tools/c++')
-rw-r--r-- | modules/tools/c++/cli_analyzer.hpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/modules/tools/c++/cli_analyzer.hpp b/modules/tools/c++/cli_analyzer.hpp index 6b44987..8142e2a 100644 --- a/modules/tools/c++/cli_analyzer.hpp +++ b/modules/tools/c++/cli_analyzer.hpp @@ -14,6 +14,7 @@ namespace impl { struct cli_mode { struct read {}; struct write {}; + struct list {}; }; template<typename Schema, typename Encoding> @@ -167,7 +168,7 @@ struct parsed_args { }; template<typename Schema, typename Encoding> -error_or<void> modify_data_on_cli(bool read_mode, const std::string_view& file_path, std::deque<std::string> sch_path, std::string& json_data){ +error_or<void> modify_data_on_cli(const std::string_view& mode, const std::string_view& file_path, std::deque<std::string> sch_path, std::string& json_data){ /** * Read data from file */ @@ -194,14 +195,14 @@ error_or<void> modify_data_on_cli(bool read_mode, const std::string_view& file_p } } - if (read_mode) { + if (mode == "r") { { auto eov = impl::cli_traverser<Schema, encode::Native<storage::Default>>::template traverse<impl::cli_mode::read>(sch_path, native_data, json_data); if(eov.is_error()){ return eov; } } - } else { + } else if (mode == "w") { { auto eov = impl::cli_traverser<Schema, encode::Native<storage::Default>>::template traverse<impl::cli_mode::write>(sch_path, native_data, json_data); if(eov.is_error()){ @@ -225,6 +226,11 @@ error_or<void> modify_data_on_cli(bool read_mode, const std::string_view& file_p fstr << enc_str; fstr.close(); } + } else if (mode == "l"){ + { + } + }else{ + return make_error<err::invalid_state>("Invalid mode"); } return void_t{}; |