diff options
| author | Claudius "keldu" Holeksa <mail@keldu.de> | 2026-04-28 11:06:22 +0200 |
|---|---|---|
| committer | Claudius "keldu" Holeksa <mail@keldu.de> | 2026-04-28 11:06:22 +0200 |
| commit | 6ef9f4b0be66d1be067bd261455d525b37d15976 (patch) | |
| tree | 51f5ecc3201aad1bec11f31787437ea26fa80cd1 /modules/codec | |
| parent | 6d4dbbd5cafce3435ca4c7aae020ba17e5a89b87 (diff) | |
| download | forstio-forstio-6ef9f4b0be66d1be067bd261455d525b37d15976.tar.gz | |
Adding parse helper
Diffstat (limited to 'modules/codec')
| -rw-r--r-- | modules/codec/c++/args.hpp | 19 | ||||
| -rw-r--r-- | modules/codec/c++/schema.hpp | 12 |
2 files changed, 31 insertions, 0 deletions
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<typename ArgSch> +error_or<data<ArgSch>> parse_args(int argc, char** argv){ + data<ArgSch> dec_dat; + + { + data<ArgSch,encode::Args> arg_dat{argc,argv}; + codec<ArgSch,encode::Args> 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<PrimA>::value, "InterfaceSchema needs to be a Primitive"); static_assert(is_primitive<PrimB>::value, "StorageSchema needs to be a Primitive"); }; +/** + * Classes enabling IdMap stuff + */ +template<typename T> +struct Id { + using Schema = Id; +}; + +template<typename T> +struct IdMap { + using Schema = IdMap<T>; +}; /** * Classes enabling Rpc calls |
