summaryrefslogtreecommitdiff
path: root/lib/core/c++/args.hpp
blob: a0aa94132d3d7f69cf80afd2f4bdf84fa5c4a46b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#pragma once

#include <forstio/codec/data.hpp>
#include <forstio/codec/args.hpp>

namespace kel {
namespace lbm {
namespace sch {
using namespace saw::schema;
}

template<typename ArgSchema>
saw::error_or<saw::data<ArgSchema>> setup_lbm_env(int argc, char** argv){
	saw::data<ArgSchema,saw::encode::Args> args_data{argc,argv};

	saw::codec<ArgSchema,saw::encode::Args> args_codec;

	saw::data<ArgSchema> args_decoded;
	auto eov = args_codec.decode(args_data,args_decoded);
	if(eov.is_error()){
		return eov;
	}

	return args_decoded;
}
}
}