diff options
author | Justus Winter <justus@sequoia-pgp.org> | 2021-02-12 13:16:34 +0100 |
---|---|---|
committer | Justus Winter <justus@sequoia-pgp.org> | 2021-02-12 17:03:45 +0100 |
commit | ee36f89cba1109be4c2b5a146cae1ac119d94760 (patch) | |
tree | 229b27f6402e5f467e0d4b834f95cb584d371d46 /openpgp/src/armor.rs | |
parent | cc396e2504df32d77cd14d500aed8e7a168f626e (diff) |
openpgp: Prepare armored reader for a different mode of operation.
Diffstat (limited to 'openpgp/src/armor.rs')
-rw-r--r-- | openpgp/src/armor.rs | 44 |
1 files changed, 25 insertions, 19 deletions
diff --git a/openpgp/src/armor.rs b/openpgp/src/armor.rs index 0d02ecb4..3e8cbe46 100644 --- a/openpgp/src/armor.rs +++ b/openpgp/src/armor.rs @@ -1190,25 +1190,8 @@ fn base64_size_test() { assert_eq!(base64_size(7), 12); } -impl<'a> Read for IoReader<'a> { - fn read(&mut self, buf: &mut [u8]) -> Result<usize> { - if ! self.initialized { - self.initialize()?; - } - - if buf.len() == 0 { - // Short-circuit here. Otherwise, we copy 0 bytes into - // the buffer, which means we decoded 0 bytes, and we - // wrongfully assume that we reached the end of the - // armored block. - return Ok(0); - } - - if self.finalized { - assert_eq!(self.buffer.len(), 0); - return Ok(0); - } - +impl<'a> IoReader<'a> { + fn read_armored_data(&mut self, buf: &mut [u8]) -> Result<usize> { let (consumed, decoded) = if self.buffer.len() > 0 { // We have something buffered, use that. @@ -1399,6 +1382,29 @@ impl<'a> Read for IoReader<'a> { } } +impl<'a> Read for IoReader<'a> { + fn read(&mut self, buf: &mut [u8]) -> Result<usize> { + if ! self.initialized { + self.initialize()?; + } + + if buf.len() == 0 { + // Short-circuit here. Otherwise, we copy 0 bytes into + // the buffer, which means we decoded 0 bytes, and we + // wrongfully assume that we reached the end of the + // armored block. + return Ok(0); + } + + if self.finalized { + assert_eq!(self.buffer.len(), 0); + return Ok(0); + } + + self.read_armored_data(buf) + } +} + impl<'a> Read for Reader<'a> { fn read(&mut self, buf: &mut [u8]) -> Result<usize> { self.reader.read(buf) |