Use u32 methods instead of manual shifting
Switch to `to_be_bytes()` and `from_be_bytes()` instead of manual shifting This was suggested [`here`](https://github.com/rust-lang/rust/pull/105145#discussion_r1051418964) Signed-off-by: Ayush Singh <ayushsingh1325@gmail.com>
This commit is contained in:
parent
224fa3907e
commit
51fe24873f
@ -365,13 +365,7 @@ fn my_copy(src: &mut dyn Read, which: u8, dst: &Mutex<dyn Write>) {
|
||||
loop {
|
||||
let n = t!(src.read(&mut b));
|
||||
let mut dst = dst.lock().unwrap();
|
||||
t!(dst.write_all(&[
|
||||
which,
|
||||
(n >> 24) as u8,
|
||||
(n >> 16) as u8,
|
||||
(n >> 8) as u8,
|
||||
(n >> 0) as u8,
|
||||
]));
|
||||
t!(dst.write_all(&create_header(which, n as u32)));
|
||||
if n > 0 {
|
||||
t!(dst.write_all(&b[..n]));
|
||||
} else {
|
||||
@ -383,7 +377,7 @@ fn my_copy(src: &mut dyn Read, which: u8, dst: &Mutex<dyn Write>) {
|
||||
fn batch_copy(buf: &[u8], which: u8, dst: &Mutex<dyn Write>) {
|
||||
let n = buf.len();
|
||||
let mut dst = dst.lock().unwrap();
|
||||
t!(dst.write_all(&[which, (n >> 24) as u8, (n >> 16) as u8, (n >> 8) as u8, (n >> 0) as u8,]));
|
||||
t!(dst.write_all(&create_header(which, n as u32)));
|
||||
if n > 0 {
|
||||
t!(dst.write_all(buf));
|
||||
// Marking buf finished
|
||||
@ -391,11 +385,13 @@ fn batch_copy(buf: &[u8], which: u8, dst: &Mutex<dyn Write>) {
|
||||
}
|
||||
}
|
||||
|
||||
const fn create_header(which: u8, n: u32) -> [u8; 5] {
|
||||
let bytes = n.to_be_bytes();
|
||||
[which, bytes[0], bytes[1], bytes[2], bytes[3]]
|
||||
}
|
||||
|
||||
fn read_u32(r: &mut dyn Read) -> u32 {
|
||||
let mut len = [0; 4];
|
||||
t!(r.read_exact(&mut len));
|
||||
((len[0] as u32) << 24)
|
||||
| ((len[1] as u32) << 16)
|
||||
| ((len[2] as u32) << 8)
|
||||
| ((len[3] as u32) << 0)
|
||||
u32::from_be_bytes(len)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user