use crate::internal::ScopedIter;
use crate::Result;
use ::std::io::Result as IoResult;
pub trait MessageInternal: crate::Message {
fn from_scoped_bytes_iter<'a, I: Iterator<Item = IoResult<u8>>>(
scoped_iter: &mut ScopedIter<'a, I>,
) -> Result<Self>
where
Self: Default,
{
let mut msg = Self::default();
msg.merge_from_scoped_bytes_iter(scoped_iter)?;
Ok(msg)
}
fn merge_from_scoped_bytes_iter<'a, I: Iterator<Item = IoResult<u8>>>(
&mut self,
scoped_iter: &mut ScopedIter<'a, I>,
) -> Result<()>;
}
pub trait MessageViewInternal: crate::MessageView {
fn new_boxed() -> Box<Self>;
}