FrameReader { inner: r, state: HadFrameEnd(Ok(())) }
}
- #[throws(MgmtChannelReadError)]
- pub fn read_rmp<T:DeserializeOwned>(&mut self) -> Option<T> {
- let frame = self.new_frame()?;
- if_let!{ Some(mut frame) = frame; else return Ok(None); };
- let v = rmp_serde::decode::from_read(&mut frame)
- .map_err(|e| MgmtChannelReadError::Parse(format!("{}", &e)))?;
- Some(v)
- }
-
#[throws(io::Error)]
pub fn new_frame<'r>(&'r mut self) -> Option<ReadFrame<'r,R>> {
self.finish_reading_frame()?;
self.inner.flush()?;
}
- #[throws(MgmtChannelWriteError)]
- pub fn write_rmp<T:Serialize>(&mut self, t: &T) {
- let mut frame = self.new_frame()?;
- rmp_serde::encode::write_named(&mut frame, t)?
- }
-
#[throws(io::Error)]
fn tidy(&mut self) {
self.finish_any_frame(Err(SenderError))?;