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>
42template <
typename Output>
46 output.setV2(value.
v2);
49template <
typename Input,
typename ReadDest>
52 messages::FooCustom::Reader custom = input.get();
53 return read_dest.update([&](
FooCustom& value) {
55 value.
v2 = custom.getV2();
61template <
typename Input>
66 return input.get().size() != 0;
71 test::messages::FooMessage::Builder&& builder)
73 builder.setMessage(src.
message +
" build");
77 const test::messages::FooMessage::Reader& reader,
80 dest.
message = std::string{reader.getMessage()} +
" read";
85 test::messages::FooMutable::Builder&& builder)
87 builder.setMessage(src.
message +
" build");
91 const test::messages::FooMutable::Reader& reader,
94 dest.
message = std::string{reader.getMessage()} +
" read";
98 const test::messages::FooMutable::Reader& reader,
99 test::messages::FooMutable::Builder builder,
103 mut.
message = std::string{reader.getMessage()} +
" pass";
105 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.
bool CustomHasField(TypeList< LocalTypes... >, InvokeContext &invoke_context, const Input &input)
Return whether to read a C++ value from a Cap'n Proto field.
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)
Function parameter type for prioritizing overloaded function calls that would otherwise be ambiguous.
Generic utility functions used by capnp code.