summaryrefslogtreecommitdiff
path: root/modules/tools/c++
diff options
context:
space:
mode:
Diffstat (limited to 'modules/tools/c++')
-rw-r--r--modules/tools/c++/cli_analyzer.hpp12
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{};