5#ifndef MP_TEST_FOO_TYPES_H
6#define MP_TEST_FOO_TYPES_H
12#include <capnp/common.h>
14#include <mp/test/foo.capnp.h>
44template <
typename Output>
48 output.setV2(value.
v2);
51template <
typename Input,
typename ReadDest>
54 messages::FooCustom::Reader custom = input.get();
55 return read_dest.update([&](
FooCustom& value) {
57 value.
v2 = custom.getV2();
63template <
typename Input>
68 return input.get().size() != 0;
73 test::messages::FooMessage::Builder&& builder)
75 builder.setMessage(src.
message +
" build");
79 const test::messages::FooMessage::Reader&
reader,
87 test::messages::FooMutable::Builder&& builder)
89 builder.setMessage(src.
message +
" build");
93 const test::messages::FooMutable::Reader&
reader,
100 const test::messages::FooMutable::Reader&
reader,
101 test::messages::FooMutable::Builder builder,
107 builder.setMessage(mut.
message +
" return");
void CustomBuildField(TypeList< FooCustom >, Priority< 1 >, InvokeContext &invoke_context, const FooCustom &value, Output &&output)
decltype(auto) CustomReadField(TypeList< FooCustom >, Priority< 1 >, InvokeContext &invoke_context, Input &&input, ReadDest &&read_dest)
Functions to serialize / deserialize common bitcoin types.
void CustomPassMessage(InvokeContext &invoke_context, const test::messages::FooMutable::Reader &reader, test::messages::FooMutable::Builder builder, std::function< void(test::FooMutable &)> &&fn)
void BuildField(TypeList< LocalTypes... >, Context &context, Output &&output, Values &&... values)
void CustomBuildMessage(InvokeContext &invoke_context, const test::FooMessage &src, test::messages::FooMessage::Builder &&builder)
void CustomReadMessage(InvokeContext &invoke_context, const test::messages::FooMessage::Reader &reader, test::FooMessage &dest)
decltype(auto) ReadField(TypeList< LocalTypes... >, InvokeContext &invoke_context, Input &&input, Args &&... args)
bool CustomHasField(TypeList< CTransaction >, InvokeContext &invoke_context, const Input &input)
Interpret empty Data fields as null CTransactionRef values.
Function parameter type for prioritizing overloaded function calls that would otherwise be ambiguous.
Generic utility functions used by capnp code.