commit 68725d295107f9c33c82145cb6a3dd53a17525f8
parent 72e95eeaca3e5df92cccaa99a3444e0999da0577
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Thu, 30 Mar 2023 02:57:44 -0700
cleanup
Diffstat:
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/src/lechatphp/mod.rs b/src/lechatphp/mod.rs
@@ -214,7 +214,8 @@ fn solve_difficulty3(img: &DynamicImage) -> Result<String, CaptchaErr> {
}
// Step2: Find the starting letter
- let starting = get_starting_letter(&img, &letters_map).ok_or(CaptchaErr("could not find starting letter".to_owned()))?;
+ let starting = get_starting_letter(&img, &letters_map)
+ .ok_or(CaptchaErr("could not find starting letter".to_owned()))?;
let mut answer = String::new();
let mut visited = HashSet::<Letter>::new();
@@ -237,7 +238,8 @@ fn solve_difficulty3(img: &DynamicImage) -> Result<String, CaptchaErr> {
}
return Err(CaptchaErr(format!("letter #{} {:?} invalid nb lines detected", i+1, letter)));
}
- letter = get_next_node(&red_px_pts, &letter, &letters_map, &visited, i, nb_lines)?;
+ letter = get_next_node(&red_px_pts, &letter, &letters_map, &visited, i, nb_lines)
+ .ok_or(CaptchaErr(format!("letter #{} {:?} all neighbors already visited", i+1, letter)))?;
break 'retry_loop;
}
answer.push(letter.character);
@@ -311,7 +313,7 @@ fn get_starting_letter(img: &DynamicImage, letters_map: &HashMap<char, Letter>)
starting
}
-fn get_next_node(red_px_pts: &Vec<Point>, letter: &Letter, letters_map: &HashMap<char, Letter>, visited: &HashSet<Letter>, i: i32, nb_lines: usize) -> Result<Letter, CaptchaErr> {
+fn get_next_node(red_px_pts: &Vec<Point>, letter: &Letter, letters_map: &HashMap<char, Letter>, visited: &HashSet<Letter>, i: i32, nb_lines: usize) -> Option<Letter> {
let mut res: Option<Letter> = None;
'lines_loop: for idx in 0..nb_lines {
let fst_red_pt = red_px_pts.get(idx).unwrap();
@@ -330,10 +332,7 @@ fn get_next_node(red_px_pts: &Vec<Point>, letter: &Letter, letters_map: &HashMap
}
res = Some(neighbor);
}
- match res {
- Some(res) => Ok(res),
- None => Err(CaptchaErr(format!("letter #{} {:?} all neighbors already visited", i+1, letter))),
- }
+ res
}