diff options
author | Justus Winter <justus@sequoia-pgp.org> | 2019-04-01 18:27:16 +0200 |
---|---|---|
committer | Justus Winter <justus@sequoia-pgp.org> | 2019-04-02 12:19:47 +0200 |
commit | fcbd00162d23cb33b2f25c96f407b5f44959c669 (patch) | |
tree | 9aa1afc4d20f4ad747d4dcf0d5123705ebb91ea3 /buffered-reader/src | |
parent | eaf014e9d9be2999a9f1b6200f1a39ca09c3d65d (diff) |
buffered-reader: Fix Limitor's io::Read interface.
Diffstat (limited to 'buffered-reader/src')
-rw-r--r-- | buffered-reader/src/limitor.rs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/buffered-reader/src/limitor.rs b/buffered-reader/src/limitor.rs index 70bbe677..e7e84d29 100644 --- a/buffered-reader/src/limitor.rs +++ b/buffered-reader/src/limitor.rs @@ -55,7 +55,11 @@ impl<'a, C> Limitor<'a, C> { impl<'a, C> io::Read for Limitor<'a, C> { fn read(&mut self, buf: &mut [u8]) -> Result<usize, io::Error> { let len = cmp::min(self.limit, buf.len() as u64) as usize; - return self.reader.read(&mut buf[0..len]); + let result = self.reader.read(&mut buf[0..len]); + if let Ok(amount) = result { + self.limit -= amount as u64; + } + result } } |