From d717fde5cae1daa2d3369e1ed7c84f735cc926ad Mon Sep 17 00:00:00 2001 From: Carl Lerche Date: Tue, 25 Oct 2016 20:09:54 -0700 Subject: [PATCH] Fix `remaining` --- src/imp/buf/mod.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/imp/buf/mod.rs b/src/imp/buf/mod.rs index 44c20f0..04c4ed2 100644 --- a/src/imp/buf/mod.rs +++ b/src/imp/buf/mod.rs @@ -635,7 +635,14 @@ impl WriteExt for T { impl> Buf for io::Cursor { fn remaining(&self) -> usize { - self.get_ref().as_ref().len() - self.position() as usize + let len = self.get_ref().as_ref().len(); + let pos = self.position(); + + if pos >= len as u64 { + return 0; + } + + len - pos as usize } fn bytes(&self) -> &[u8] { @@ -653,7 +660,7 @@ impl> Buf for io::Cursor { impl + AsRef<[u8]>> MutBuf for io::Cursor { fn remaining(&self) -> usize { - self.get_ref().as_ref().len() - self.position() as usize + Buf::remaining(self) } /// Advance the internal cursor of the MutBuf