commit 246702df37bc8a307eaa8d5d0d6d63c9f09a7363
parent da8caf48aedefc7395402c11d709aee8d0b933b0
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Fri, 31 Mar 2023 16:36:17 -0700
avoid cloning a bunch of values for no reason
Diffstat:
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/lechatphp/mod.rs b/src/lechatphp/mod.rs
@@ -180,17 +180,17 @@ fn solve_difficulty3(img: &DynamicImage) -> Result<String, CaptchaErr> {
fn solve_path(starting: Letter, letters_map: &HashMap<char, Letter>, img: &DynamicImage) -> String {
let mut answer = String::new();
- let mut remaining: HashSet<_> = letters_map.values().cloned().collect();
- let mut letter = starting;
+ let mut remaining: HashSet<_> = letters_map.values().collect();
+ let mut letter = remaining.take(&starting).unwrap();
for _ in 0..NB_CHARS {
- remaining.remove(&letter);
+ remaining.remove(letter);
answer.push(letter.character);
- let mut dest_count = HashMap::<Letter, usize>::new();
+ let mut dest_count = HashMap::<&Letter, usize>::new();
for dest in remaining.iter() {
let red = Bresenham::new(letter.center().into(), dest.center().into())
.filter(|(x, y)| is_red(img.get_pixel(*x as u32, *y as u32)))
.count();
- dest_count.insert(dest.clone(), red);
+ dest_count.insert(dest, red);
}
if let Some((dest_max, _)) = dest_count.into_iter().max_by(|a, b| a.1.cmp(&b.1)) {
letter = dest_max;