From 91641624a63c21069749a6047b29f713c6dfbd2b Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 17 Apr 2021 13:08:39 +0100 Subject: [PATCH] packetframe: Allow privately constructing one out of non-Buf Signed-off-by: Ian Jackson --- src/packetframe.rs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/packetframe.rs b/src/packetframe.rs index f64960f7..2bb53654 100644 --- a/src/packetframe.rs +++ b/src/packetframe.rs @@ -25,13 +25,13 @@ type BO = BigEndian; pub struct Fuse(Result); #[derive(Debug)] -pub struct FrameReader { +pub struct FrameReader { inner: Fuse, in_frame: Option, } #[derive(Debug)] -pub struct ReadFrame<'r,R:BufRead> { +pub struct ReadFrame<'r,R:Read> { fr: Result<&'r mut FrameReader, Option>, } @@ -116,8 +116,11 @@ impl Display for Broken { } } -impl FrameReader { - pub fn new(r: R) -> FrameReader { +impl FrameReader { + pub fn new(r: R) -> FrameReader where R:BufRead { + Self::new_unbuf(r) + } + fn new_unbuf(r: R) -> FrameReader { FrameReader { inner: Fuse(Ok(r)), in_frame: None } } @@ -166,7 +169,7 @@ impl FrameReader { } } -impl<'r, R:BufRead> Read for ReadFrame<'r, R> { +impl<'r, R:Read> Read for ReadFrame<'r, R> { #[throws(io::Error)] fn read(&mut self, buf: &mut [u8]) -> usize { if buf.len() == 0 { return 0 } -- 2.30.2