pub trait OutgoingMessage {
// Required methods
fn get_body(&mut self) -> Result<Builder<'_>>;
fn get_body_as_reader(&self) -> Result<Reader<'_>>;
fn send(self: Box<Self>) -> (Promise<(), Error>, Rc<Builder<HeapAllocator>>);
fn take(self: Box<Self>) -> Builder<HeapAllocator>;
fn size_in_words(&self) -> usize;
}Expand description
A message to be sent by a VatNetwork.
Required Methods§
Sourcefn get_body(&mut self) -> Result<Builder<'_>>
fn get_body(&mut self) -> Result<Builder<'_>>
Gets the message body, which the caller may fill in any way it wants.
The standard RPC implementation initializes it as a Message as defined
in schema/rpc.capnp.
Sourcefn get_body_as_reader(&self) -> Result<Reader<'_>>
fn get_body_as_reader(&self) -> Result<Reader<'_>>
Same as get_body(), but returns the corresponding reader type.
Sourcefn send(self: Box<Self>) -> (Promise<(), Error>, Rc<Builder<HeapAllocator>>)
fn send(self: Box<Self>) -> (Promise<(), Error>, Rc<Builder<HeapAllocator>>)
Sends the message. Returns a promise that resolves once the send has completed. Dropping the returned promise does not cancel the send.
Sourcefn take(self: Box<Self>) -> Builder<HeapAllocator>
fn take(self: Box<Self>) -> Builder<HeapAllocator>
Takes the inner message out of self.
Sourcefn size_in_words(&self) -> usize
fn size_in_words(&self) -> usize
Gets the total size of the message, for flow control purposes. Although the caller could also call get_body().target_size(), doing that would walk the message tree, whereas typical implementations can compute the size more cheaply by summing segment sizes.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".