summaryrefslogtreecommitdiff
path: root/modules/codec/c++/args.hpp
diff options
context:
space:
mode:
authorClaudius "keldu" Holeksa <mail@keldu.de>2026-04-28 11:06:22 +0200
committerClaudius "keldu" Holeksa <mail@keldu.de>2026-04-28 11:06:22 +0200
commit6ef9f4b0be66d1be067bd261455d525b37d15976 (patch)
tree51f5ecc3201aad1bec11f31787437ea26fa80cd1 /modules/codec/c++/args.hpp
parent6d4dbbd5cafce3435ca4c7aae020ba17e5a89b87 (diff)
downloadforstio-forstio-6ef9f4b0be66d1be067bd261455d525b37d15976.tar.gz
Adding parse helper
Diffstat (limited to 'modules/codec/c++/args.hpp')
-rw-r--r--modules/codec/c++/args.hpp19
1 files changed, 19 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;
+}
}