From a14896f9ed209dd3f9597722e5a5697bd7dbf531 Mon Sep 17 00:00:00 2001 From: "Claudius \"keldu\" Holeksa" Date: Mon, 4 Dec 2023 12:18:14 +0100 Subject: meta: Renamed folder containing source --- c++/tools/cli_analyzer.hpp | 114 --------------------------------------------- 1 file changed, 114 deletions(-) delete mode 100644 c++/tools/cli_analyzer.hpp (limited to 'c++/tools/cli_analyzer.hpp') diff --git a/c++/tools/cli_analyzer.hpp b/c++/tools/cli_analyzer.hpp deleted file mode 100644 index 295ddf6..0000000 --- a/c++/tools/cli_analyzer.hpp +++ /dev/null @@ -1,114 +0,0 @@ -#pragma once - -#include - -#include - -namespace saw { -namespace impl { -struct cli_mode { - struct read {}; - struct write {}; -}; - -template -struct cli_traverser { - static_assert(always_false, "Not supported"); -}; - -template -struct cli_modifier { - codec json; - codec encoded; - - error_or read(data& enc_data, std::deque& sch_path, std::string& json_data_str){ - data native; - { - auto eov = encoded.decode(enc_data, native); - if(eov.is_error()){ - return eov; - } - } - { - data json_data; - auto eov = json.encode(native, json_data); - if(eov.is_error()){ - return eov; - } - - json_data_str = convert_to_string(json_data.get_buffer()); - } - - return void_t{}; - } - - error_or write(data& enc_data, std::deque& sch_path, std::string& json_data_str){ - data native; - { - /// @todo string to data - data json_data{ std::string_view{json_data_str} }; - auto eov = json.decode(json_data, native); - if(eov.is_error()){ - return eov; - } - } - { - auto eov = encoded.encode(native, enc_data); - if(eov.is_error()){ - return eov; - } - }i - - return void_t{}; - - } -}; - -template -struct cli_traverser...>, Encoding> { - using Schema = schema::Struct...>; - - template - static error_or traverse(std::deque& sch_path, std::string& json_data){ - if(sch_path.empty()){ - cli_modifier mod; - if constexpr (std::is_same_v){ - return mod.read(sch_path, json_data); - } else if constexpr (std::is_same_v) { - return mod.write(sch_path, json_data); - } else { - return make_error(); - } - } else { - - } - - return void_t{}; - } -}; -} - -template -int modify_data_on_cli(int argc, char** argv){ - - /// @todo parse cli data - bool read_mode = true; - - std::deque sch_path; - std::string json_data; - - if (read_mode) { - auto eov = impl::cli_modifier::traverse(sch_path, json_data); - if(eov.is_error()){ - return -1; - } - } else { - auto eov = impl::cli_modifier::traverse(sch_path, json_data); - if(eov.is_error()){ - return -1; - } - } - - return 0; -} -} -- cgit v1.2.3