pub trait AnyMessage:
Send
+ Sync
+ 'static {
// Required methods
fn new(&self) -> Box<dyn AnyMessage + 'static>;
fn qualified_name(&self) -> &'static str;
fn as_bin<'buf>(&self) -> &dyn BinProto<'buf>;
fn as_bin_mut<'buf>(&mut self) -> &mut dyn BinProto<'buf>;
fn as_text<'buf>(&self) -> &dyn TextProto<'buf>;
fn as_text_mut<'buf>(&mut self) -> &mut dyn TextProto<'buf>;
}Expand description
type-erased message that supports all formats of decoding & encoding
Required Methods§
fn new(&self) -> Box<dyn AnyMessage + 'static>
fn qualified_name(&self) -> &'static str
fn as_bin<'buf>(&self) -> &dyn BinProto<'buf>
fn as_bin_mut<'buf>(&mut self) -> &mut dyn BinProto<'buf>
fn as_text<'buf>(&self) -> &dyn TextProto<'buf>
fn as_text_mut<'buf>(&mut self) -> &mut dyn TextProto<'buf>
Trait Implementations§
Source§impl<'buf> BinProto<'buf> for dyn AnyMessage
impl<'buf> BinProto<'buf> for dyn AnyMessage
fn qualified_name(&self) -> &'static str
fn merge_field( &mut self, tag_wire: u32, stream: &mut InputStream<'buf>, ) -> Result<()>
fn size(&self, stack: &mut SizeStack) -> usize
fn encode(&self, stream: &mut OutputStream)
Source§impl Clone for Box<dyn AnyMessage>
impl Clone for Box<dyn AnyMessage>
Source§impl Debug for dyn AnyMessage
impl Debug for dyn AnyMessage
Source§impl<'buf> TextProto<'buf> for dyn AnyMessage
impl<'buf> TextProto<'buf> for dyn AnyMessage
Source§fn merge_field(&mut self, stream: &mut InputStream<'buf>) -> Result<()>
fn merge_field(&mut self, stream: &mut InputStream<'buf>) -> Result<()>
Merge a single field into this message from input stream Read more
Source§fn encode(&self, stream: &mut OutputStream<'_>)
fn encode(&self, stream: &mut OutputStream<'_>)
Encode this message contents into the provided output stream