summaryrefslogtreecommitdiffstats
path: root/buffered-reader
diff options
context:
space:
mode:
authorNora Widdecke <nora@sequoia-pgp.org>2020-05-08 15:13:50 +0200
committerNora Widdecke <nora@sequoia-pgp.org>2020-05-11 15:37:39 +0200
commit8e4932b7084ed0ed10fe250b5bdc69bc9001880c (patch)
tree1bb43ec628633556aa1c7991d3632f2deaa7b971 /buffered-reader
parent6550051e23704d7e6c47e8553e55f0653b14c8cc (diff)
buffered-reader: Use from_be_bytes.
- Replace bitshifts with {u16,u32}::from_be_bytes from the standard library.
Diffstat (limited to 'buffered-reader')
-rw-r--r--buffered-reader/src/lib.rs8
1 files changed, 5 insertions, 3 deletions
diff --git a/buffered-reader/src/lib.rs b/buffered-reader/src/lib.rs
index 04429967..92cfcc66 100644
--- a/buffered-reader/src/lib.rs
+++ b/buffered-reader/src/lib.rs
@@ -233,6 +233,7 @@ use std::io;
use std::io::{Error, ErrorKind};
use std::cmp;
use std::fmt;
+use std::convert::TryInto;
mod generic;
mod memory;
@@ -603,15 +604,16 @@ pub trait BufferedReader<C> : io::Read + fmt::Debug + fmt::Display {
/// in big endian format.
fn read_be_u16(&mut self) -> Result<u16, std::io::Error> {
let input = self.data_consume_hard(2)?;
- return Ok(((input[0] as u16) << 8) + (input[1] as u16));
+ // input holds at least 2 bytes, so this cannot fail.
+ Ok(u16::from_be_bytes(input[..2].try_into().unwrap()))
}
/// A convenience function for reading a 32-bit unsigned integer
/// in big endian format.
fn read_be_u32(&mut self) -> Result<u32, std::io::Error> {
let input = self.data_consume_hard(4)?;
- return Ok(((input[0] as u32) << 24) + ((input[1] as u32) << 16)
- + ((input[2] as u32) << 8) + (input[3] as u32));
+ // input holds at least 4 bytes, so this cannot fail.
+ Ok(u32::from_be_bytes(input[..4].try_into().unwrap()))
}
/// Reads until either `terminal` is encountered or EOF.