提交 540f2558 编写于 作者: D Daniel Larimer

Merge branch 'slim' of github.com:EOSIO/eos into slim

......@@ -174,6 +174,19 @@ namespace impl {
mvo(name, std::move(array));
}
/**
* template which overloads add for shared_ptr of types which contain ABI information in their trees
* for these members we call ::add in order to trigger further processing
*/
template<typename M, typename Resolver, require_abi_t<M> = 1>
static void add( mutable_variant_object &mvo, const char* name, const std::shared_ptr<M>& v, Resolver resolver )
{
if( !v ) return;
mutable_variant_object obj_mvo;
add(obj_mvo, "_", *v, resolver);
mvo(name, std::move(obj_mvo["_"]));
}
template<typename Resolver, typename... Args>
static void add( mutable_variant_object &mvo, const char* name, const fc::static_variant<Args...>& v, Resolver resolver )
{
......@@ -317,6 +330,19 @@ namespace impl {
}
}
/**
* template which overloads extract for shared_ptr of types which contain ABI information in their trees
* for these members we call ::extract in order to trigger further processing
*/
template<typename M, typename Resolver, require_abi_t<M> = 1>
static void extract( const variant& v, std::shared_ptr<M>& o, Resolver resolver )
{
const variant_object& vo = v.get_object();
M obj;
extract(vo, obj, resolver);
o = std::make_shared<M>(obj);
}
/**
* Non templated overload that has priority for the action structure
* this type has members which must be directly translated by the ABI so it is
......
......@@ -66,5 +66,5 @@ FC_REFLECT_DERIVED( eosio::chain::action_trace,
(eosio::chain::base_action_trace), (inline_traces) )
FC_REFLECT( eosio::chain::transaction_trace, (id)(receipt)(elapsed)(net_usage)(cpu_usage)(scheduled)(action_traces)
/*(failed_dtrx_trace)*/(soft_except)(hard_except) )
(failed_dtrx_trace)(soft_except)(hard_except) )
FC_REFLECT( eosio::chain::block_trace, (elapsed)(cpu_usage)(trx_traces) )
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册