我需要使用超过默认消息遍历限制的Rust Cap'n Proto API发送RPC。当我尝试发送消息时,出现以下错误:
remote exception: <class \'capnp.lib.capnp.KjException
\'>:capnp/arena.c++:130: failed: Exceeded message traversal limit.
See capnp::ReaderOptions.
如果我正在使用capnp::serialize::read_message
阅读消息,则可以提供一个ReaderOptions
结构来指定新的遍历限制。
但是,我正在像calculator example中那样发送和发送请求,而不是直接阅读消息。如何设置请求消息的遍历限制?
答案 0 :(得分:1)
您可以在构造VatNetwork
时进行设置:
pub fn new<U>(
input_stream: T,
output_stream: U,
side: Side,
receive_options: ReaderOptions,
) -> VatNetwork<T>
where
U: Write + 'static,
https://github.com/capnproto/capnproto-rust/issues/124#issuecomment-468877758