♻️ refactor: replace all unwraps in my code with question marks

main
_ 2021-12-09 01:39:54 +00:00
parent c7681ce9f5
commit 33e6ae29ca
4 changed files with 25 additions and 20 deletions

View File

@ -25,8 +25,3 @@ I can't remember the trick for that. I think last time I did this
# 01FPDWYH3ZY52DFF6PNRSA63GB # 01FPDWYH3ZY52DFF6PNRSA63GB
Sending an invalid packet directly to the server's UDP port crashes the server. Sending an invalid packet directly to the server's UDP port crashes the server.
# 01FPDY51GHC7NRFV7Z14Q1KV7N
Remove all unwraps. Since I used abort-on-panic to make the binary smaller,
it's not giving any error message for panics

View File

@ -92,7 +92,7 @@ impl Message {
Self::write_response_2 (&mut dummy_writer, x)?; Self::write_response_2 (&mut dummy_writer, x)?;
// Write length and real params to real output // Write length and real params to real output
let len = u32::try_from (dummy_writer.position).unwrap (); let len = u32::try_from (dummy_writer.position)?;
w.write_all (&len.to_le_bytes ())?; w.write_all (&len.to_le_bytes ())?;
Self::write_response_2 (w, x)?; Self::write_response_2 (w, x)?;
}, },
@ -206,7 +206,7 @@ mod test {
use super::*; use super::*;
#[test] #[test]
fn test_write_2 () { fn test_write_2 () -> Result <(), MessageError> {
for (input, expected) in [ for (input, expected) in [
( (
vec! [ vec! [
@ -254,13 +254,15 @@ mod test {
], ],
), ),
] { ] {
let actual = Message::many_to_vec (&input).unwrap (); let actual = Message::many_to_vec (&input)?;
assert_eq! (actual, expected, "{:?}", input); assert_eq! (actual, expected, "{:?}", input);
} }
Ok (())
} }
#[test] #[test]
fn test_write_1 () { fn test_write_1 () -> Result <(), MessageError> {
for (input, expected) in [ for (input, expected) in [
( (
Message::Request1 { Message::Request1 {
@ -302,13 +304,15 @@ mod test {
], ],
), ),
].into_iter () { ].into_iter () {
let actual = input.to_vec ().unwrap (); let actual = input.to_vec ()?;
assert_eq! (actual, expected, "{:?}", input); assert_eq! (actual, expected, "{:?}", input);
} }
Ok (())
} }
#[test] #[test]
fn test_read_2 () { fn test_read_2 () -> Result <(), MessageError> {
for input in [ for input in [
vec! [ vec! [
Message::Request1 { Message::Request1 {
@ -330,9 +334,11 @@ mod test {
}), }),
], ],
].into_iter () { ].into_iter () {
let encoded = Message::many_to_vec (&input).unwrap (); let encoded = Message::many_to_vec (&input)?;
let decoded = Message::from_slice2 (&encoded).unwrap (); let decoded = Message::from_slice2 (&encoded)?;
assert_eq! (input, decoded); assert_eq! (input, decoded);
} }
Ok (())
} }
} }

View File

@ -29,9 +29,9 @@ pub async fn server <I: Iterator <Item=String>> (mut args: I) -> Result <(), App
println! ("Warning: Can't find our own MAC address. We won't be able to respond to MAC-specific lookaround requests"); println! ("Warning: Can't find our own MAC address. We won't be able to respond to MAC-specific lookaround requests");
} }
let socket = UdpSocket::bind (SocketAddrV4::new (Ipv4Addr::from_str (&bind_addr)?, common_params.server_port)).await.unwrap (); let socket = UdpSocket::bind (SocketAddrV4::new (Ipv4Addr::from_str (&bind_addr)?, common_params.server_port)).await?;
socket.join_multicast_v4 (common_params.multicast_addr, [0u8, 0, 0, 0].into ()).unwrap (); socket.join_multicast_v4 (common_params.multicast_addr, [0u8, 0, 0, 0].into ())?;
let mut recent_idem_ids = Vec::with_capacity (32); let mut recent_idem_ids = Vec::with_capacity (32);
@ -72,7 +72,7 @@ pub async fn server <I: Iterator <Item=String>> (mut args: I) -> Result <(), App
}; };
if let Some (resp) = resp { if let Some (resp) = resp {
socket.send_to (&Message::many_to_vec (&resp)?, remote_addr).await.unwrap (); socket.send_to (&Message::many_to_vec (&resp)?, remote_addr).await?;
} }
} }
} }

View File

@ -90,15 +90,17 @@ impl <R: std::io::Read> Reader <R> {
#[cfg (test)] #[cfg (test)]
mod test { mod test {
use super::*;
#[test] #[test]
fn test_1 () { fn test_1 () -> Result <()> {
use std::io::Cursor; use std::io::Cursor;
let b = "hi there".as_bytes (); let b = "hi there".as_bytes ();
let mut w = Cursor::new (Vec::default ()); let mut w = Cursor::new (Vec::default ());
super::Writer::lv_bytes (&mut w, b).unwrap (); super::Writer::lv_bytes (&mut w, b)?;
let v = w.into_inner (); let v = w.into_inner ();
@ -110,9 +112,11 @@ mod test {
let mut r = Cursor::new (v); let mut r = Cursor::new (v);
let buf = super::Reader::lv_bytes_to_vec (&mut r, 1024).unwrap (); let buf = Reader::lv_bytes_to_vec (&mut r, 1024)?;
assert_eq! (buf.len (), b.len ()); assert_eq! (buf.len (), b.len ());
assert_eq! (b, &buf [0..usize::try_from (buf.len ()).unwrap ()]); assert_eq! (b, &buf);
Ok (())
} }
} }