// Generated by mpgen from /build/bitcoin/src/bitcoin-30.2/src/ipc/capnp/echo.capnp

// IWYU pragma: no_include <kj/memory.h>
// IWYU pragma: no_include <memory>
// IWYU pragma: begin_keep
#include <src/ipc/capnp/echo.capnp.h>
#include <src/ipc/capnp/echo.capnp.proxy.h>
#include <src/ipc/capnp/echo.capnp.proxy-types.h>
#include <capnp/generated-header-support.h>
#include <cstring>
#include <kj/common.h>
#include <mp/proxy.h>
#include <mp/util.h>
#include <mp/proxy-types.h>
// IWYU pragma: end_keep

namespace mp {
ProxyClient<ipc::capnp::messages::Echo>::M0::Result ProxyClient<ipc::capnp::messages::Echo>::destroy(Super& super) {
    clientInvoke(super, &ipc::capnp::messages::Echo::Client::destroyRequest, MakeClientParam<Accessor<echo_fields::Context, FIELD_IN | FIELD_BOXED>>());
}
ProxyClient<ipc::capnp::messages::Echo>::M1::Result ProxyClient<ipc::capnp::messages::Echo>::echo(M1::Param<0> echo) {
    typename M1::Result result;
    clientInvoke(*this, &ipc::capnp::messages::Echo::Client::echoRequest, MakeClientParam<Accessor<echo_fields::Context, FIELD_IN | FIELD_BOXED>>(), MakeClientParam<Accessor<echo_fields::Echo, FIELD_IN | FIELD_BOXED>>(M1::Fwd<0>(echo)), MakeClientParam<Accessor<echo_fields::Result, FIELD_OUT | FIELD_BOXED>>(result));
    return result;
}
namespace {
ProxyTypeRegister t15234421227331863449{TypeList<interfaces::Echo>{}};
} // namespace
} // namespace mp
