hyperledger/iroha
Iroha - A simple, decentralized ledger http://iroha.tech
result_try.hpp
Go to the documentation of this file.
1 
6 #ifndef IROHA_RESULT_TRY_HPP
7 #define IROHA_RESULT_TRY_HPP
8 
9 #include "common/result.hpp"
10 
11 #define IROHA_EXPECTED_ERROR_CHECK(...) \
12  if (auto _tmp_gen_var = (__VA_ARGS__); \
13  iroha::expected::hasError(_tmp_gen_var)) \
14  return _tmp_gen_var.assumeError()
15 
16 #define IROHA_EXPECTED_TRY_GET_VALUE(name, ...) \
17  typename decltype(__VA_ARGS__)::ValueInnerType name; \
18  if (auto _tmp_gen_var = (__VA_ARGS__); \
19  iroha::expected::hasError(_tmp_gen_var)) \
20  return _tmp_gen_var.assumeError(); \
21  else \
22  name = std::move(_tmp_gen_var.assumeValue())
23 
24 #endif // IROHA_RESULT_TRY_HPP