From 6ef9f4b0be66d1be067bd261455d525b37d15976 Mon Sep 17 00:00:00 2001 From: "Claudius \"keldu\" Holeksa" Date: Tue, 28 Apr 2026 11:06:22 +0200 Subject: Adding parse helper --- modules/codec/c++/args.hpp | 19 +++++++++++++++++++ modules/codec/c++/schema.hpp | 12 ++++++++++++ 2 files changed, 31 insertions(+) (limited to 'modules') diff --git a/modules/codec/c++/args.hpp b/modules/codec/c++/args.hpp index 0253417..66acd97 100644 --- a/modules/codec/c++/args.hpp +++ b/modules/codec/c++/args.hpp @@ -199,4 +199,23 @@ public: return eov; } }; + +/** + * Helper function to reduce boilerplate + */ +template +error_or> parse_args(int argc, char** argv){ + data dec_dat; + + { + data arg_dat{argc,argv}; + codec arg_cod; + auto eov = arg_cod.decode(arg_dat,dec_dat); + if(eov.is_error()){ + return std::move(eov.get_error()); + } + } + + return dec_dat; +} } diff --git a/modules/codec/c++/schema.hpp b/modules/codec/c++/schema.hpp index 018cb41..340b122 100644 --- a/modules/codec/c++/schema.hpp +++ b/modules/codec/c++/schema.hpp @@ -178,6 +178,18 @@ struct MixedPrecision { static_assert(is_primitive::value, "InterfaceSchema needs to be a Primitive"); static_assert(is_primitive::value, "StorageSchema needs to be a Primitive"); }; +/** + * Classes enabling IdMap stuff + */ +template +struct Id { + using Schema = Id; +}; + +template +struct IdMap { + using Schema = IdMap; +}; /** * Classes enabling Rpc calls -- cgit v1.2.3