pub mod common_types;
pub trait Message: prost::Message {
fn as_any(&self) -> &dyn std::any::Any;
#[doc(hidden)]
fn encode_to_vec2(&self) -> Vec<u8>;
#[doc(hidden)]
fn encoded_len(&self) -> usize {
prost::Message::encoded_len(self)
}
}
pub trait ToMessage<M: Message> {
fn to_message(self) -> M;
fn is_primitive<L: private::IsLocal>(&self) -> bool {
false
}
}
impl<M: Message> ToMessage<M> for M {
fn to_message(self) -> M {
self
}
}
pub(crate) mod private {
#[doc(hidden)]
pub enum Local {}
#[doc(hidden)]
pub trait IsLocal {}
impl IsLocal for Local {}
}