From 68e4a7542350e54ce1e78df23755a9a2f78cad96 Mon Sep 17 00:00:00 2001 From: Jonas Zeunert Date: Sun, 18 Feb 2024 17:15:29 +0100 Subject: [PATCH] Ref: Move check outside to make it more sound --- src/main.rs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main.rs b/src/main.rs index 0a6240d..7b56487 100644 --- a/src/main.rs +++ b/src/main.rs @@ -67,16 +67,17 @@ fn main() { } fn parse_playfield(field: &String, field_size: usize) -> Playfield { - let playfield = &mut Playfield::new(field_size); + let mut playfield = Playfield::new(field_size); let chars = field.split(" ").collect::>(); - if chars.len() != field_size * field_size { + if !is_right_field_size(&chars, field_size) { panic!( "Input must have dimension of size {size}x{size}", size = field_size ); } + for row in 0..field_size { for col in 0..field_size { let field = &mut playfield.fields[row][col]; @@ -86,11 +87,15 @@ fn parse_playfield(field: &String, field_size: usize) -> Playfield { continue; } - field.value = Some(char_field.to_string().parse::().unwrap()); + field.value = Some(char_field.parse().unwrap()); } } - return playfield.clone(); + return playfield; +} + +fn is_right_field_size(field: &Vec<&str>, field_size: usize) -> bool { + return field.len() == field_size * field_size; } #[cfg(test)]