}
impl<R:BufRead> FrameReader<R> {
+ pub fn new(r: R) -> FrameReader<R> {
+ FrameReader { inner: Fuse(Ok(r)), in_frame: None }
+ }
+
#[throws(io::Error)]
pub fn new_frame<'r>(&'r mut self) -> ReadFrame<'r,R> {
if self.in_frame.is_some() {
}
impl<W:Write> FrameWriter<W> {
+ pub fn new(w: W) -> FrameWriter<W> {
+ FrameWriter { inner: Fuse(Ok(w)), in_frame: None }
+ }
+
#[throws(io::Error)]
pub fn new_frame<'w>(&'w mut self) -> WriteFrame<'w,W> {
self.tidy(Err(SenderError))?;
.unwrap_or_else(|_: io::Error| () /* Fuse will replicate this */);
}
}
-impl<'r, R:Write> Write for WriteFrameRaw<'r, R> {
+impl<'w,W:Write> Write for WriteFrameRaw<'w,W> {
#[throws(io::Error)]
fn write(&mut self, buf: &[u8]) -> usize {
let now = min(buf.len(), CHUNK_MAX.into());
self.fw.inner.flush()?
}
}
+impl<'w,W:Write> Write for WriteFrame<'w,W> {
+ #[throws(io::Error)]
+ fn write(&mut self, buf: &[u8]) -> usize { self.buf.write(buf)? }
+ #[throws(io::Error)]
+ fn flush(&mut self) { self.buf.flush()? }
+}
+
+#[test]
+fn write_test(){
+ let mut buf = vec![];
+ let mut wr = FrameWriter::new(&mut buf);
+ {
+ let mut frame = wr.new_frame().unwrap();
+ frame.write(b"hi").unwrap();
+ }
+ dbg!(buf);
+}