From 24bf28a8fb9cc8c3a90b77de9b60728bece7885d Mon Sep 17 00:00:00 2001 From: "Claudius \"keldu\" Holeksa" Date: Sat, 18 Oct 2025 18:01:14 +0200 Subject: Moving project structure for more less compilation --- lib/c++/config.hpp | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 lib/c++/config.hpp (limited to 'lib/c++/config.hpp') diff --git a/lib/c++/config.hpp b/lib/c++/config.hpp new file mode 100644 index 0000000..64f7a0f --- /dev/null +++ b/lib/c++/config.hpp @@ -0,0 +1,53 @@ +#pragma once + +#include +#include + +#include +#include +#include +#include + +namespace kel { +namespace lbm { +namespace sch { +using namespace saw::schema; +template +using LbmConfig = Struct< + Member, + Member, + Member +>; +} + +template +saw::error_or>> load_lbm_config(std::string_view file_name){ + std::ifstream file{std::string{file_name}}; + + if(!file.is_open()){ + return saw::make_error("Couldn't open file"); + } + + saw::data, saw::encode::Json> lbm_json_conf{saw::heap(1u)}; + + uint8_t ele{}; + while(file.readsome(reinterpret_cast(&ele), 1u) > 0u){ + auto err = lbm_json_conf.get_buffer().push(ele,1u); + if(err.failed()){ + return err; + } + } + + saw::data> lbm_conf; + saw::codec, saw::encode::Json> json_codec; + { + auto eov = json_codec.decode(lbm_json_conf, lbm_conf); + if(eov.is_error()){ + return std::move(eov.get_error()); + } + } + + return lbm_conf; +} +} +} -- cgit v1.2.3