Coverage Report

Created: 2026-05-06 07:53

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/tmp/bitcoin/src/ipc/libmultiprocess/include/mp/type-struct.h
Line
Count
Source
1
// Copyright (c) The Bitcoin Core developers
2
// Distributed under the MIT software license, see the accompanying
3
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5
#ifndef MP_PROXY_TYPE_STRUCT_H
6
#define MP_PROXY_TYPE_STRUCT_H
7
8
#include <mp/util.h>
9
10
namespace mp {
11
template <size_t index, typename LocalType, typename Value, typename Output>
12
void BuildOne(TypeList<LocalType> param,
13
    InvokeContext& invoke_context,
14
    Output&& output,
15
    Value&& value,
16
    typename std::enable_if < index<ProxyType<LocalType>::fields>::type * enable = nullptr)
17
0
{
18
0
    using Index = std::integral_constant<size_t, index>;
19
0
    using Struct = typename ProxyType<LocalType>::Struct;
20
0
    using Accessor = typename std::tuple_element<index, typename ProxyStruct<Struct>::Accessors>::type;
21
0
    auto&& field_output = Make<StructField, Accessor>(output);
22
0
    auto&& field_value = value.*ProxyType<LocalType>::get(Index());
23
0
    BuildField(TypeList<Decay<decltype(field_value)>>(), invoke_context, field_output, field_value);
24
0
    BuildOne<index + 1>(param, invoke_context, output, value);
25
0
}
Unexecuted instantiation: void mp::BuildOne<0ul, node::BlockCreateOptions, node::BlockCreateOptions const&, ipc::capnp::messages::BlockCreateOptions::Builder>(mp::TypeList<node::BlockCreateOptions>, mp::InvokeContext&, ipc::capnp::messages::BlockCreateOptions::Builder&&, node::BlockCreateOptions const&, std::enable_if<0ul < ProxyType<node::BlockCreateOptions>::fields, void>::type*)
Unexecuted instantiation: void mp::BuildOne<1ul, node::BlockCreateOptions, node::BlockCreateOptions const&, ipc::capnp::messages::BlockCreateOptions::Builder&>(mp::TypeList<node::BlockCreateOptions>, mp::InvokeContext&, ipc::capnp::messages::BlockCreateOptions::Builder&, node::BlockCreateOptions const&, std::enable_if<1ul < ProxyType<node::BlockCreateOptions>::fields, void>::type*)
Unexecuted instantiation: void mp::BuildOne<2ul, node::BlockCreateOptions, node::BlockCreateOptions const&, ipc::capnp::messages::BlockCreateOptions::Builder&>(mp::TypeList<node::BlockCreateOptions>, mp::InvokeContext&, ipc::capnp::messages::BlockCreateOptions::Builder&, node::BlockCreateOptions const&, std::enable_if<2ul < ProxyType<node::BlockCreateOptions>::fields, void>::type*)
Unexecuted instantiation: void mp::BuildOne<0ul, node::BlockCheckOptions, node::BlockCheckOptions const&, ipc::capnp::messages::BlockCheckOptions::Builder>(mp::TypeList<node::BlockCheckOptions>, mp::InvokeContext&, ipc::capnp::messages::BlockCheckOptions::Builder&&, node::BlockCheckOptions const&, std::enable_if<0ul < ProxyType<node::BlockCheckOptions>::fields, void>::type*)
Unexecuted instantiation: void mp::BuildOne<1ul, node::BlockCheckOptions, node::BlockCheckOptions const&, ipc::capnp::messages::BlockCheckOptions::Builder&>(mp::TypeList<node::BlockCheckOptions>, mp::InvokeContext&, ipc::capnp::messages::BlockCheckOptions::Builder&, node::BlockCheckOptions const&, std::enable_if<1ul < ProxyType<node::BlockCheckOptions>::fields, void>::type*)
Unexecuted instantiation: void mp::BuildOne<0ul, node::BlockWaitOptions, node::BlockWaitOptions&, ipc::capnp::messages::BlockWaitOptions::Builder>(mp::TypeList<node::BlockWaitOptions>, mp::InvokeContext&, ipc::capnp::messages::BlockWaitOptions::Builder&&, node::BlockWaitOptions&, std::enable_if<0ul < ProxyType<node::BlockWaitOptions>::fields, void>::type*)
Unexecuted instantiation: void mp::BuildOne<1ul, node::BlockWaitOptions, node::BlockWaitOptions&, ipc::capnp::messages::BlockWaitOptions::Builder&>(mp::TypeList<node::BlockWaitOptions>, mp::InvokeContext&, ipc::capnp::messages::BlockWaitOptions::Builder&, node::BlockWaitOptions&, std::enable_if<1ul < ProxyType<node::BlockWaitOptions>::fields, void>::type*)
Unexecuted instantiation: void mp::BuildOne<0ul, interfaces::BlockRef, interfaces::BlockRef&, ipc::capnp::messages::BlockRef::Builder>(mp::TypeList<interfaces::BlockRef>, mp::InvokeContext&, ipc::capnp::messages::BlockRef::Builder&&, interfaces::BlockRef&, std::enable_if<0ul < ProxyType<interfaces::BlockRef>::fields, void>::type*)
Unexecuted instantiation: void mp::BuildOne<1ul, interfaces::BlockRef, interfaces::BlockRef&, ipc::capnp::messages::BlockRef::Builder&>(mp::TypeList<interfaces::BlockRef>, mp::InvokeContext&, ipc::capnp::messages::BlockRef::Builder&, interfaces::BlockRef&, std::enable_if<1ul < ProxyType<interfaces::BlockRef>::fields, void>::type*)
Unexecuted instantiation: void mp::BuildOne<0ul, node::CoinbaseTx, node::CoinbaseTx&, ipc::capnp::messages::CoinbaseTx::Builder>(mp::TypeList<node::CoinbaseTx>, mp::InvokeContext&, ipc::capnp::messages::CoinbaseTx::Builder&&, node::CoinbaseTx&, std::enable_if<0ul < ProxyType<node::CoinbaseTx>::fields, void>::type*)
Unexecuted instantiation: void mp::BuildOne<1ul, node::CoinbaseTx, node::CoinbaseTx&, ipc::capnp::messages::CoinbaseTx::Builder&>(mp::TypeList<node::CoinbaseTx>, mp::InvokeContext&, ipc::capnp::messages::CoinbaseTx::Builder&, node::CoinbaseTx&, std::enable_if<1ul < ProxyType<node::CoinbaseTx>::fields, void>::type*)
Unexecuted instantiation: void mp::BuildOne<2ul, node::CoinbaseTx, node::CoinbaseTx&, ipc::capnp::messages::CoinbaseTx::Builder&>(mp::TypeList<node::CoinbaseTx>, mp::InvokeContext&, ipc::capnp::messages::CoinbaseTx::Builder&, node::CoinbaseTx&, std::enable_if<2ul < ProxyType<node::CoinbaseTx>::fields, void>::type*)
Unexecuted instantiation: void mp::BuildOne<3ul, node::CoinbaseTx, node::CoinbaseTx&, ipc::capnp::messages::CoinbaseTx::Builder&>(mp::TypeList<node::CoinbaseTx>, mp::InvokeContext&, ipc::capnp::messages::CoinbaseTx::Builder&, node::CoinbaseTx&, std::enable_if<3ul < ProxyType<node::CoinbaseTx>::fields, void>::type*)
Unexecuted instantiation: void mp::BuildOne<4ul, node::CoinbaseTx, node::CoinbaseTx&, ipc::capnp::messages::CoinbaseTx::Builder&>(mp::TypeList<node::CoinbaseTx>, mp::InvokeContext&, ipc::capnp::messages::CoinbaseTx::Builder&, node::CoinbaseTx&, std::enable_if<4ul < ProxyType<node::CoinbaseTx>::fields, void>::type*)
Unexecuted instantiation: void mp::BuildOne<5ul, node::CoinbaseTx, node::CoinbaseTx&, ipc::capnp::messages::CoinbaseTx::Builder&>(mp::TypeList<node::CoinbaseTx>, mp::InvokeContext&, ipc::capnp::messages::CoinbaseTx::Builder&, node::CoinbaseTx&, std::enable_if<5ul < ProxyType<node::CoinbaseTx>::fields, void>::type*)
Unexecuted instantiation: void mp::BuildOne<6ul, node::CoinbaseTx, node::CoinbaseTx&, ipc::capnp::messages::CoinbaseTx::Builder&>(mp::TypeList<node::CoinbaseTx>, mp::InvokeContext&, ipc::capnp::messages::CoinbaseTx::Builder&, node::CoinbaseTx&, std::enable_if<6ul < ProxyType<node::CoinbaseTx>::fields, void>::type*)
26
27
template <size_t index, typename LocalType, typename Value, typename Output>
28
void BuildOne(TypeList<LocalType> param,
29
    InvokeContext& invoke_context,
30
    Output&& output,
31
    Value&& value,
32
    typename std::enable_if<index == ProxyType<LocalType>::fields>::type* enable = nullptr)
33
0
{
34
0
}
Unexecuted instantiation: void mp::BuildOne<3ul, node::BlockCreateOptions, node::BlockCreateOptions const&, ipc::capnp::messages::BlockCreateOptions::Builder&>(mp::TypeList<node::BlockCreateOptions>, mp::InvokeContext&, ipc::capnp::messages::BlockCreateOptions::Builder&, node::BlockCreateOptions const&, std::enable_if<3ul == ProxyType<node::BlockCreateOptions>::fields, void>::type*)
Unexecuted instantiation: void mp::BuildOne<2ul, node::BlockCheckOptions, node::BlockCheckOptions const&, ipc::capnp::messages::BlockCheckOptions::Builder&>(mp::TypeList<node::BlockCheckOptions>, mp::InvokeContext&, ipc::capnp::messages::BlockCheckOptions::Builder&, node::BlockCheckOptions const&, std::enable_if<2ul == ProxyType<node::BlockCheckOptions>::fields, void>::type*)
Unexecuted instantiation: void mp::BuildOne<2ul, node::BlockWaitOptions, node::BlockWaitOptions&, ipc::capnp::messages::BlockWaitOptions::Builder&>(mp::TypeList<node::BlockWaitOptions>, mp::InvokeContext&, ipc::capnp::messages::BlockWaitOptions::Builder&, node::BlockWaitOptions&, std::enable_if<2ul == ProxyType<node::BlockWaitOptions>::fields, void>::type*)
Unexecuted instantiation: void mp::BuildOne<2ul, interfaces::BlockRef, interfaces::BlockRef&, ipc::capnp::messages::BlockRef::Builder&>(mp::TypeList<interfaces::BlockRef>, mp::InvokeContext&, ipc::capnp::messages::BlockRef::Builder&, interfaces::BlockRef&, std::enable_if<2ul == ProxyType<interfaces::BlockRef>::fields, void>::type*)
Unexecuted instantiation: void mp::BuildOne<7ul, node::CoinbaseTx, node::CoinbaseTx&, ipc::capnp::messages::CoinbaseTx::Builder&>(mp::TypeList<node::CoinbaseTx>, mp::InvokeContext&, ipc::capnp::messages::CoinbaseTx::Builder&, node::CoinbaseTx&, std::enable_if<7ul == ProxyType<node::CoinbaseTx>::fields, void>::type*)
35
36
template <typename LocalType, typename Value, typename Output>
37
void CustomBuildField(TypeList<LocalType> local_type,
38
    Priority<1>,
39
    InvokeContext& invoke_context,
40
    Value&& value,
41
    Output&& output,
42
    typename ProxyType<LocalType>::Struct* enable = nullptr)
43
0
{
44
0
    BuildOne<0>(local_type, invoke_context, output.init(), value);
45
0
}
Unexecuted instantiation: void mp::CustomBuildField<node::BlockCreateOptions, node::BlockCreateOptions const&, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, capnp::Request<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>>&>(mp::TypeList<node::BlockCreateOptions>, mp::Priority<1>, mp::InvokeContext&, node::BlockCreateOptions const&, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, capnp::Request<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>>&, mp::ProxyType<node::BlockCreateOptions>::Struct*)
Unexecuted instantiation: void mp::CustomBuildField<node::BlockCheckOptions, node::BlockCheckOptions const&, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, capnp::Request<ipc::capnp::messages::Mining::CheckBlockParams, ipc::capnp::messages::Mining::CheckBlockResults>>&>(mp::TypeList<node::BlockCheckOptions>, mp::Priority<1>, mp::InvokeContext&, node::BlockCheckOptions const&, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, capnp::Request<ipc::capnp::messages::Mining::CheckBlockParams, ipc::capnp::messages::Mining::CheckBlockResults>>&, mp::ProxyType<node::BlockCheckOptions>::Struct*)
Unexecuted instantiation: void mp::CustomBuildField<node::BlockWaitOptions, node::BlockWaitOptions, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, capnp::Request<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>>(mp::TypeList<node::BlockWaitOptions>, mp::Priority<1>, mp::InvokeContext&, node::BlockWaitOptions&&, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, capnp::Request<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>&&, mp::ProxyType<node::BlockWaitOptions>::Struct*)
Unexecuted instantiation: void mp::CustomBuildField<interfaces::BlockRef, interfaces::BlockRef, mp::StructField<mp::Accessor<mp::mining_fields::Result, 22>, ipc::capnp::messages::Mining::GetTipResults::Builder>&>(mp::TypeList<interfaces::BlockRef>, mp::Priority<1>, mp::InvokeContext&, interfaces::BlockRef&&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 22>, ipc::capnp::messages::Mining::GetTipResults::Builder>&, mp::ProxyType<interfaces::BlockRef>::Struct*)
Unexecuted instantiation: void mp::CustomBuildField<interfaces::BlockRef, interfaces::BlockRef, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, ipc::capnp::messages::Mining::WaitTipChangedResults::Builder>&>(mp::TypeList<interfaces::BlockRef>, mp::Priority<1>, mp::InvokeContext&, interfaces::BlockRef&&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, ipc::capnp::messages::Mining::WaitTipChangedResults::Builder>&, mp::ProxyType<interfaces::BlockRef>::Struct*)
Unexecuted instantiation: void mp::CustomBuildField<node::CoinbaseTx, node::CoinbaseTx, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, ipc::capnp::messages::BlockTemplate::GetCoinbaseTxResults::Builder>&>(mp::TypeList<node::CoinbaseTx>, mp::Priority<1>, mp::InvokeContext&, node::CoinbaseTx&&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, ipc::capnp::messages::BlockTemplate::GetCoinbaseTxResults::Builder>&, mp::ProxyType<node::CoinbaseTx>::Struct*)
46
47
template <size_t index, typename LocalType, typename Input, typename Value>
48
void ReadOne(TypeList<LocalType> param,
49
    InvokeContext& invoke_context,
50
    Input&& input,
51
    Value&& value,
52
    typename std::enable_if<index != ProxyType<LocalType>::fields>::type* enable = nullptr)
53
0
{
54
0
    using Index = std::integral_constant<size_t, index>;
55
0
    using Struct = typename ProxyType<LocalType>::Struct;
56
0
    using Accessor = typename std::tuple_element<index, typename ProxyStruct<Struct>::Accessors>::type;
57
0
    const auto& struc = input.get();
58
0
    auto&& field_value = value.*ProxyType<LocalType>::get(Index());
59
0
    ReadField(TypeList<RemoveCvRef<decltype(field_value)>>(), invoke_context, Make<StructField, Accessor>(struc),
60
0
        ReadDestUpdate(field_value));
61
0
    ReadOne<index + 1>(param, invoke_context, input, value);
62
0
}
Unexecuted instantiation: void mp::ReadOne<0ul, interfaces::BlockRef, mp::StructField<mp::Accessor<mp::mining_fields::Result, 22>, capnp::Response<ipc::capnp::messages::Mining::GetTipResults>>&, interfaces::BlockRef&>(mp::TypeList<interfaces::BlockRef>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 22>, capnp::Response<ipc::capnp::messages::Mining::GetTipResults>>&, interfaces::BlockRef&, std::enable_if<0ul != ProxyType<interfaces::BlockRef>::fields, void>::type*)
Unexecuted instantiation: void mp::ReadOne<1ul, interfaces::BlockRef, mp::StructField<mp::Accessor<mp::mining_fields::Result, 22>, capnp::Response<ipc::capnp::messages::Mining::GetTipResults>>&, interfaces::BlockRef&>(mp::TypeList<interfaces::BlockRef>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 22>, capnp::Response<ipc::capnp::messages::Mining::GetTipResults>>&, interfaces::BlockRef&, std::enable_if<1ul != ProxyType<interfaces::BlockRef>::fields, void>::type*)
Unexecuted instantiation: void mp::ReadOne<0ul, interfaces::BlockRef, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::Mining::WaitTipChangedResults>>&, interfaces::BlockRef&>(mp::TypeList<interfaces::BlockRef>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::Mining::WaitTipChangedResults>>&, interfaces::BlockRef&, std::enable_if<0ul != ProxyType<interfaces::BlockRef>::fields, void>::type*)
Unexecuted instantiation: void mp::ReadOne<1ul, interfaces::BlockRef, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::Mining::WaitTipChangedResults>>&, interfaces::BlockRef&>(mp::TypeList<interfaces::BlockRef>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::Mining::WaitTipChangedResults>>&, interfaces::BlockRef&, std::enable_if<1ul != ProxyType<interfaces::BlockRef>::fields, void>::type*)
Unexecuted instantiation: void mp::ReadOne<0ul, node::CoinbaseTx, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::BlockTemplate::GetCoinbaseTxResults>>&, node::CoinbaseTx&>(mp::TypeList<node::CoinbaseTx>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::BlockTemplate::GetCoinbaseTxResults>>&, node::CoinbaseTx&, std::enable_if<0ul != ProxyType<node::CoinbaseTx>::fields, void>::type*)
Unexecuted instantiation: void mp::ReadOne<1ul, node::CoinbaseTx, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::BlockTemplate::GetCoinbaseTxResults>>&, node::CoinbaseTx&>(mp::TypeList<node::CoinbaseTx>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::BlockTemplate::GetCoinbaseTxResults>>&, node::CoinbaseTx&, std::enable_if<1ul != ProxyType<node::CoinbaseTx>::fields, void>::type*)
Unexecuted instantiation: void mp::ReadOne<2ul, node::CoinbaseTx, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::BlockTemplate::GetCoinbaseTxResults>>&, node::CoinbaseTx&>(mp::TypeList<node::CoinbaseTx>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::BlockTemplate::GetCoinbaseTxResults>>&, node::CoinbaseTx&, std::enable_if<2ul != ProxyType<node::CoinbaseTx>::fields, void>::type*)
Unexecuted instantiation: void mp::ReadOne<3ul, node::CoinbaseTx, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::BlockTemplate::GetCoinbaseTxResults>>&, node::CoinbaseTx&>(mp::TypeList<node::CoinbaseTx>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::BlockTemplate::GetCoinbaseTxResults>>&, node::CoinbaseTx&, std::enable_if<3ul != ProxyType<node::CoinbaseTx>::fields, void>::type*)
Unexecuted instantiation: void mp::ReadOne<4ul, node::CoinbaseTx, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::BlockTemplate::GetCoinbaseTxResults>>&, node::CoinbaseTx&>(mp::TypeList<node::CoinbaseTx>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::BlockTemplate::GetCoinbaseTxResults>>&, node::CoinbaseTx&, std::enable_if<4ul != ProxyType<node::CoinbaseTx>::fields, void>::type*)
Unexecuted instantiation: void mp::ReadOne<5ul, node::CoinbaseTx, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::BlockTemplate::GetCoinbaseTxResults>>&, node::CoinbaseTx&>(mp::TypeList<node::CoinbaseTx>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::BlockTemplate::GetCoinbaseTxResults>>&, node::CoinbaseTx&, std::enable_if<5ul != ProxyType<node::CoinbaseTx>::fields, void>::type*)
Unexecuted instantiation: void mp::ReadOne<6ul, node::CoinbaseTx, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::BlockTemplate::GetCoinbaseTxResults>>&, node::CoinbaseTx&>(mp::TypeList<node::CoinbaseTx>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::BlockTemplate::GetCoinbaseTxResults>>&, node::CoinbaseTx&, std::enable_if<6ul != ProxyType<node::CoinbaseTx>::fields, void>::type*)
Unexecuted instantiation: void mp::ReadOne<0ul, node::BlockCreateOptions, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, ipc::capnp::messages::Mining::CreateNewBlockParams::Reader const>&, node::BlockCreateOptions&>(mp::TypeList<node::BlockCreateOptions>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, ipc::capnp::messages::Mining::CreateNewBlockParams::Reader const>&, node::BlockCreateOptions&, std::enable_if<0ul != ProxyType<node::BlockCreateOptions>::fields, void>::type*)
Unexecuted instantiation: void mp::ReadOne<1ul, node::BlockCreateOptions, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, ipc::capnp::messages::Mining::CreateNewBlockParams::Reader const>&, node::BlockCreateOptions&>(mp::TypeList<node::BlockCreateOptions>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, ipc::capnp::messages::Mining::CreateNewBlockParams::Reader const>&, node::BlockCreateOptions&, std::enable_if<1ul != ProxyType<node::BlockCreateOptions>::fields, void>::type*)
Unexecuted instantiation: void mp::ReadOne<2ul, node::BlockCreateOptions, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, ipc::capnp::messages::Mining::CreateNewBlockParams::Reader const>&, node::BlockCreateOptions&>(mp::TypeList<node::BlockCreateOptions>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, ipc::capnp::messages::Mining::CreateNewBlockParams::Reader const>&, node::BlockCreateOptions&, std::enable_if<2ul != ProxyType<node::BlockCreateOptions>::fields, void>::type*)
Unexecuted instantiation: void mp::ReadOne<0ul, node::BlockCheckOptions, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, ipc::capnp::messages::Mining::CheckBlockParams::Reader const>&, node::BlockCheckOptions&>(mp::TypeList<node::BlockCheckOptions>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, ipc::capnp::messages::Mining::CheckBlockParams::Reader const>&, node::BlockCheckOptions&, std::enable_if<0ul != ProxyType<node::BlockCheckOptions>::fields, void>::type*)
Unexecuted instantiation: void mp::ReadOne<1ul, node::BlockCheckOptions, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, ipc::capnp::messages::Mining::CheckBlockParams::Reader const>&, node::BlockCheckOptions&>(mp::TypeList<node::BlockCheckOptions>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, ipc::capnp::messages::Mining::CheckBlockParams::Reader const>&, node::BlockCheckOptions&, std::enable_if<1ul != ProxyType<node::BlockCheckOptions>::fields, void>::type*)
Unexecuted instantiation: void mp::ReadOne<0ul, node::BlockWaitOptions, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, ipc::capnp::messages::BlockTemplate::WaitNextParams::Reader const>&, node::BlockWaitOptions&>(mp::TypeList<node::BlockWaitOptions>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, ipc::capnp::messages::BlockTemplate::WaitNextParams::Reader const>&, node::BlockWaitOptions&, std::enable_if<0ul != ProxyType<node::BlockWaitOptions>::fields, void>::type*)
Unexecuted instantiation: void mp::ReadOne<1ul, node::BlockWaitOptions, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, ipc::capnp::messages::BlockTemplate::WaitNextParams::Reader const>&, node::BlockWaitOptions&>(mp::TypeList<node::BlockWaitOptions>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, ipc::capnp::messages::BlockTemplate::WaitNextParams::Reader const>&, node::BlockWaitOptions&, std::enable_if<1ul != ProxyType<node::BlockWaitOptions>::fields, void>::type*)
63
64
template <size_t index, typename LocalType, typename Input, typename Value>
65
void ReadOne(TypeList<LocalType> param,
66
    InvokeContext& invoke_context,
67
    Input& input,
68
    Value& value,
69
    typename std::enable_if<index == ProxyType<LocalType>::fields>::type* enable = nullptr)
70
0
{
71
0
}
Unexecuted instantiation: void mp::ReadOne<2ul, interfaces::BlockRef, mp::StructField<mp::Accessor<mp::mining_fields::Result, 22>, capnp::Response<ipc::capnp::messages::Mining::GetTipResults>>, interfaces::BlockRef>(mp::TypeList<interfaces::BlockRef>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 22>, capnp::Response<ipc::capnp::messages::Mining::GetTipResults>>&, interfaces::BlockRef&, std::enable_if<2ul == ProxyType<interfaces::BlockRef>::fields, void>::type*)
Unexecuted instantiation: void mp::ReadOne<2ul, interfaces::BlockRef, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::Mining::WaitTipChangedResults>>, interfaces::BlockRef>(mp::TypeList<interfaces::BlockRef>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::Mining::WaitTipChangedResults>>&, interfaces::BlockRef&, std::enable_if<2ul == ProxyType<interfaces::BlockRef>::fields, void>::type*)
Unexecuted instantiation: void mp::ReadOne<7ul, node::CoinbaseTx, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::BlockTemplate::GetCoinbaseTxResults>>, node::CoinbaseTx>(mp::TypeList<node::CoinbaseTx>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::BlockTemplate::GetCoinbaseTxResults>>&, node::CoinbaseTx&, std::enable_if<7ul == ProxyType<node::CoinbaseTx>::fields, void>::type*)
Unexecuted instantiation: void mp::ReadOne<3ul, node::BlockCreateOptions, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, ipc::capnp::messages::Mining::CreateNewBlockParams::Reader const>, node::BlockCreateOptions>(mp::TypeList<node::BlockCreateOptions>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, ipc::capnp::messages::Mining::CreateNewBlockParams::Reader const>&, node::BlockCreateOptions&, std::enable_if<3ul == ProxyType<node::BlockCreateOptions>::fields, void>::type*)
Unexecuted instantiation: void mp::ReadOne<2ul, node::BlockCheckOptions, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, ipc::capnp::messages::Mining::CheckBlockParams::Reader const>, node::BlockCheckOptions>(mp::TypeList<node::BlockCheckOptions>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, ipc::capnp::messages::Mining::CheckBlockParams::Reader const>&, node::BlockCheckOptions&, std::enable_if<2ul == ProxyType<node::BlockCheckOptions>::fields, void>::type*)
Unexecuted instantiation: void mp::ReadOne<2ul, node::BlockWaitOptions, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, ipc::capnp::messages::BlockTemplate::WaitNextParams::Reader const>, node::BlockWaitOptions>(mp::TypeList<node::BlockWaitOptions>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, ipc::capnp::messages::BlockTemplate::WaitNextParams::Reader const>&, node::BlockWaitOptions&, std::enable_if<2ul == ProxyType<node::BlockWaitOptions>::fields, void>::type*)
72
73
template <typename LocalType, typename Input, typename ReadDest>
74
decltype(auto) CustomReadField(TypeList<LocalType> param,
75
    Priority<1>,
76
    InvokeContext& invoke_context,
77
    Input&& input,
78
    ReadDest&& read_dest,
79
    typename ProxyType<LocalType>::Struct* enable = nullptr)
80
0
{
81
0
    return read_dest.update([&](auto& value) { ReadOne<0>(param, invoke_context, input, value); });
Unexecuted instantiation: auto decltype(auto) mp::CustomReadField<interfaces::BlockRef, mp::StructField<mp::Accessor<mp::mining_fields::Result, 22>, capnp::Response<ipc::capnp::messages::Mining::GetTipResults>>&, mp::ReadDestUpdate<interfaces::BlockRef>>(mp::TypeList<interfaces::BlockRef>, mp::Priority<1>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 22>, capnp::Response<ipc::capnp::messages::Mining::GetTipResults>>&, mp::ReadDestUpdate<interfaces::BlockRef>&&, mp::ProxyType<interfaces::BlockRef>::Struct*)::'lambda'(interfaces::BlockRef&)::operator()<interfaces::BlockRef>(interfaces::BlockRef&) const
Unexecuted instantiation: auto decltype(auto) mp::CustomReadField<interfaces::BlockRef, mp::StructField<mp::Accessor<mp::mining_fields::Result, 22>, capnp::Response<ipc::capnp::messages::Mining::GetTipResults>>&, mp::ReadDestEmplace<interfaces::BlockRef, auto decltype(auto) mp::CustomReadField<interfaces::BlockRef, mp::StructField<mp::Accessor<mp::mining_fields::Result, 22>, capnp::Response<ipc::capnp::messages::Mining::GetTipResults>>, mp::ReadDestUpdate<std::optional<interfaces::BlockRef>>>(mp::TypeList<std::optional<interfaces::BlockRef>>, mp::Priority<1>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 22>, capnp::Response<ipc::capnp::messages::Mining::GetTipResults>>&&, mp::ReadDestUpdate<std::optional<interfaces::BlockRef>>&&)::'lambda'(interfaces::BlockRef&)::operator()<std::optional<interfaces::BlockRef>>(interfaces::BlockRef&) const::'lambda'(auto&&...)>>(mp::TypeList<interfaces::BlockRef>, mp::Priority<1>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 22>, capnp::Response<ipc::capnp::messages::Mining::GetTipResults>>&&, mp::ReadDestUpdate<std::optional<interfaces::BlockRef>>&&, mp::ProxyType<interfaces::BlockRef>::Struct*)::'lambda'(interfaces::BlockRef&)::operator()<interfaces::BlockRef>(interfaces::BlockRef&) const
Unexecuted instantiation: auto decltype(auto) mp::CustomReadField<interfaces::BlockRef, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::Mining::WaitTipChangedResults>>&, mp::ReadDestUpdate<interfaces::BlockRef>>(mp::TypeList<interfaces::BlockRef>, mp::Priority<1>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::Mining::WaitTipChangedResults>>&, mp::ReadDestUpdate<interfaces::BlockRef>&&, mp::ProxyType<interfaces::BlockRef>::Struct*)::'lambda'(interfaces::BlockRef&)::operator()<interfaces::BlockRef>(interfaces::BlockRef&) const
Unexecuted instantiation: auto decltype(auto) mp::CustomReadField<interfaces::BlockRef, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::Mining::WaitTipChangedResults>>&, mp::ReadDestEmplace<interfaces::BlockRef, auto decltype(auto) mp::CustomReadField<interfaces::BlockRef, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::Mining::WaitTipChangedResults>>, mp::ReadDestUpdate<std::optional<interfaces::BlockRef>>>(mp::TypeList<std::optional<interfaces::BlockRef>>, mp::Priority<1>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::Mining::WaitTipChangedResults>>&&, mp::ReadDestUpdate<std::optional<interfaces::BlockRef>>&&)::'lambda'(interfaces::BlockRef&)::operator()<std::optional<interfaces::BlockRef>>(interfaces::BlockRef&) const::'lambda'(auto&&...)>>(mp::TypeList<interfaces::BlockRef>, mp::Priority<1>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::Mining::WaitTipChangedResults>>&&, mp::ReadDestUpdate<std::optional<interfaces::BlockRef>>&&, mp::ProxyType<interfaces::BlockRef>::Struct*)::'lambda'(interfaces::BlockRef&)::operator()<interfaces::BlockRef>(interfaces::BlockRef&) const
Unexecuted instantiation: auto decltype(auto) mp::CustomReadField<node::CoinbaseTx, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::BlockTemplate::GetCoinbaseTxResults>>, mp::ReadDestUpdate<node::CoinbaseTx>>(mp::TypeList<node::CoinbaseTx>, mp::Priority<1>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::BlockTemplate::GetCoinbaseTxResults>>&&, mp::ReadDestUpdate<node::CoinbaseTx>&&, mp::ProxyType<node::CoinbaseTx>::Struct*)::'lambda'(node::CoinbaseTx&)::operator()<node::CoinbaseTx>(node::CoinbaseTx&) const
Unexecuted instantiation: auto decltype(auto) mp::CustomReadField<node::BlockCreateOptions, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, ipc::capnp::messages::Mining::CreateNewBlockParams::Reader const>, mp::ReadDestEmplace<node::BlockCreateOptions, void mp::PassField<mp::Accessor<mp::mining_fields::Options, 17>, node::BlockCreateOptions const&, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Cooldown, 1>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall>> const&, mp::TypeList<bool>>(mp::Priority<0>, mp::TypeList<node::BlockCreateOptions const&>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>>&, mp::ServerField<1, mp::Accessor<mp::mining_fields::Cooldown, 1>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall>> const&, mp::TypeList<bool>&&)::'lambda'(auto&&...)>>(mp::TypeList<node::BlockCreateOptions>, mp::Priority<1>, mp::InvokeContext&, node::BlockCreateOptions const&, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>>&&, mp::ProxyType<node::BlockCreateOptions>::Struct*)::'lambda'(node::BlockCreateOptions&)::operator()<node::BlockCreateOptions>(node::BlockCreateOptions&) const
Unexecuted instantiation: auto decltype(auto) mp::CustomReadField<node::BlockCheckOptions, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, ipc::capnp::messages::Mining::CheckBlockParams::Reader const>, mp::ReadDestEmplace<node::BlockCheckOptions, void mp::PassField<mp::Accessor<mp::mining_fields::Options, 17>, node::BlockCheckOptions const&, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CheckBlockParams, ipc::capnp::messages::Mining::CheckBlockResults>>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Reason, 18>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Debug, 18>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 2>, mp::ServerCall>>> const&, mp::TypeList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&>, CBlock const&>(mp::Priority<0>, mp::TypeList<node::BlockCheckOptions const&>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CheckBlockParams, ipc::capnp::messages::Mining::CheckBlockResults>>&, mp::ServerField<1, mp::Accessor<mp::mining_fields::Reason, 18>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Debug, 18>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 2>, mp::ServerCall>>> const&, mp::TypeList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&>&&, CBlock const&)::'lambda'(auto&&...)>>(mp::TypeList<node::BlockCheckOptions>, mp::Priority<1>, mp::InvokeContext&, node::BlockCheckOptions const&, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CheckBlockParams, ipc::capnp::messages::Mining::CheckBlockResults>>&&, mp::ProxyType<node::BlockCheckOptions>::Struct*)::'lambda'(node::BlockCheckOptions&)::operator()<node::BlockCheckOptions>(node::BlockCheckOptions&) const
Unexecuted instantiation: auto decltype(auto) mp::CustomReadField<node::BlockWaitOptions, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, ipc::capnp::messages::BlockTemplate::WaitNextParams::Reader const>, mp::ReadDestEmplace<node::BlockWaitOptions, void mp::PassField<mp::Accessor<mp::mining_fields::Options, 17>, node::BlockWaitOptions, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall> const&, mp::TypeList<>>(mp::Priority<0>, mp::TypeList<node::BlockWaitOptions>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>&, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall> const&, mp::TypeList<>&&)::'lambda'(auto&&...)>>(mp::TypeList<node::BlockWaitOptions>, mp::Priority<1>, mp::InvokeContext&, node::BlockWaitOptions&&, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>&&, mp::ProxyType<node::BlockWaitOptions>::Struct*)::'lambda'(node::BlockWaitOptions&)::operator()<node::BlockWaitOptions>(node::BlockWaitOptions&) const
82
0
}
Unexecuted instantiation: decltype(auto) mp::CustomReadField<interfaces::BlockRef, mp::StructField<mp::Accessor<mp::mining_fields::Result, 22>, capnp::Response<ipc::capnp::messages::Mining::GetTipResults>>&, mp::ReadDestUpdate<interfaces::BlockRef>>(mp::TypeList<interfaces::BlockRef>, mp::Priority<1>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 22>, capnp::Response<ipc::capnp::messages::Mining::GetTipResults>>&, mp::ReadDestUpdate<interfaces::BlockRef>&&, mp::ProxyType<interfaces::BlockRef>::Struct*)
Unexecuted instantiation: decltype(auto) mp::CustomReadField<interfaces::BlockRef, mp::StructField<mp::Accessor<mp::mining_fields::Result, 22>, capnp::Response<ipc::capnp::messages::Mining::GetTipResults>>&, mp::ReadDestEmplace<interfaces::BlockRef, auto decltype(auto) mp::CustomReadField<interfaces::BlockRef, mp::StructField<mp::Accessor<mp::mining_fields::Result, 22>, capnp::Response<ipc::capnp::messages::Mining::GetTipResults>>, mp::ReadDestUpdate<std::optional<interfaces::BlockRef>>>(mp::TypeList<std::optional<interfaces::BlockRef>>, mp::Priority<1>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 22>, capnp::Response<ipc::capnp::messages::Mining::GetTipResults>>&&, mp::ReadDestUpdate<std::optional<interfaces::BlockRef>>&&)::'lambda'(interfaces::BlockRef&)::operator()<std::optional<interfaces::BlockRef>>(interfaces::BlockRef&) const::'lambda'(auto&&...)>>(mp::TypeList<interfaces::BlockRef>, mp::Priority<1>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 22>, capnp::Response<ipc::capnp::messages::Mining::GetTipResults>>&&, mp::ReadDestUpdate<std::optional<interfaces::BlockRef>>&&, mp::ProxyType<interfaces::BlockRef>::Struct*)
Unexecuted instantiation: decltype(auto) mp::CustomReadField<interfaces::BlockRef, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::Mining::WaitTipChangedResults>>&, mp::ReadDestUpdate<interfaces::BlockRef>>(mp::TypeList<interfaces::BlockRef>, mp::Priority<1>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::Mining::WaitTipChangedResults>>&, mp::ReadDestUpdate<interfaces::BlockRef>&&, mp::ProxyType<interfaces::BlockRef>::Struct*)
Unexecuted instantiation: decltype(auto) mp::CustomReadField<interfaces::BlockRef, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::Mining::WaitTipChangedResults>>&, mp::ReadDestEmplace<interfaces::BlockRef, auto decltype(auto) mp::CustomReadField<interfaces::BlockRef, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::Mining::WaitTipChangedResults>>, mp::ReadDestUpdate<std::optional<interfaces::BlockRef>>>(mp::TypeList<std::optional<interfaces::BlockRef>>, mp::Priority<1>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::Mining::WaitTipChangedResults>>&&, mp::ReadDestUpdate<std::optional<interfaces::BlockRef>>&&)::'lambda'(interfaces::BlockRef&)::operator()<std::optional<interfaces::BlockRef>>(interfaces::BlockRef&) const::'lambda'(auto&&...)>>(mp::TypeList<interfaces::BlockRef>, mp::Priority<1>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::Mining::WaitTipChangedResults>>&&, mp::ReadDestUpdate<std::optional<interfaces::BlockRef>>&&, mp::ProxyType<interfaces::BlockRef>::Struct*)
Unexecuted instantiation: decltype(auto) mp::CustomReadField<node::CoinbaseTx, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::BlockTemplate::GetCoinbaseTxResults>>, mp::ReadDestUpdate<node::CoinbaseTx>>(mp::TypeList<node::CoinbaseTx>, mp::Priority<1>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Result, 18>, capnp::Response<ipc::capnp::messages::BlockTemplate::GetCoinbaseTxResults>>&&, mp::ReadDestUpdate<node::CoinbaseTx>&&, mp::ProxyType<node::CoinbaseTx>::Struct*)
Unexecuted instantiation: decltype(auto) mp::CustomReadField<node::BlockCreateOptions, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, ipc::capnp::messages::Mining::CreateNewBlockParams::Reader const>, mp::ReadDestEmplace<node::BlockCreateOptions, void mp::PassField<mp::Accessor<mp::mining_fields::Options, 17>, node::BlockCreateOptions const&, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Cooldown, 1>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall>> const&, mp::TypeList<bool>>(mp::Priority<0>, mp::TypeList<node::BlockCreateOptions const&>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>>&, mp::ServerField<1, mp::Accessor<mp::mining_fields::Cooldown, 1>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall>> const&, mp::TypeList<bool>&&)::'lambda'(auto&&...)>>(mp::TypeList<node::BlockCreateOptions>, mp::Priority<1>, mp::InvokeContext&, node::BlockCreateOptions const&, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>>&&, mp::ProxyType<node::BlockCreateOptions>::Struct*)
Unexecuted instantiation: decltype(auto) mp::CustomReadField<node::BlockCheckOptions, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, ipc::capnp::messages::Mining::CheckBlockParams::Reader const>, mp::ReadDestEmplace<node::BlockCheckOptions, void mp::PassField<mp::Accessor<mp::mining_fields::Options, 17>, node::BlockCheckOptions const&, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CheckBlockParams, ipc::capnp::messages::Mining::CheckBlockResults>>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Reason, 18>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Debug, 18>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 2>, mp::ServerCall>>> const&, mp::TypeList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&>, CBlock const&>(mp::Priority<0>, mp::TypeList<node::BlockCheckOptions const&>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CheckBlockParams, ipc::capnp::messages::Mining::CheckBlockResults>>&, mp::ServerField<1, mp::Accessor<mp::mining_fields::Reason, 18>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Debug, 18>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 2>, mp::ServerCall>>> const&, mp::TypeList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&>&&, CBlock const&)::'lambda'(auto&&...)>>(mp::TypeList<node::BlockCheckOptions>, mp::Priority<1>, mp::InvokeContext&, node::BlockCheckOptions const&, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CheckBlockParams, ipc::capnp::messages::Mining::CheckBlockResults>>&&, mp::ProxyType<node::BlockCheckOptions>::Struct*)
Unexecuted instantiation: decltype(auto) mp::CustomReadField<node::BlockWaitOptions, mp::StructField<mp::Accessor<mp::mining_fields::Options, 17>, ipc::capnp::messages::BlockTemplate::WaitNextParams::Reader const>, mp::ReadDestEmplace<node::BlockWaitOptions, void mp::PassField<mp::Accessor<mp::mining_fields::Options, 17>, node::BlockWaitOptions, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall> const&, mp::TypeList<>>(mp::Priority<0>, mp::TypeList<node::BlockWaitOptions>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>&, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall> const&, mp::TypeList<>&&)::'lambda'(auto&&...)>>(mp::TypeList<node::BlockWaitOptions>, mp::Priority<1>, mp::InvokeContext&, node::BlockWaitOptions&&, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>&&, mp::ProxyType<node::BlockWaitOptions>::Struct*)
83
} // namespace mp
84
85
#endif // MP_PROXY_TYPE_STRUCT_H