Now it can be written more nicely

This commit is contained in:
fantacell 2025-08-26 16:44:24 +02:00
parent fff15e983e
commit eaa9d37a04

View file

@ -568,35 +568,11 @@ impl FuzzyBoundary {
reach_boundary.map(|reach_start| (point, reach_start)) reach_boundary.map(|reach_start| (point, reach_start))
}; };
let forwards = std::iter::successors( let forwards = try_find_boundary_data(map, from, generate_boundary_data);
try_find_boundary_data(map, from, generate_boundary_data), let backwards = try_find_preceding_boundary_data(map, from, generate_boundary_data);
|(previous_identifier, _)| { let boundaries = [forwards, backwards]
if *previous_identifier == map.max_point() { .into_iter()
return None; .filter_map(|data| data)
}
try_find_boundary_data(
map,
movement::right(map, *previous_identifier),
generate_boundary_data,
)
},
);
let backwards = std::iter::successors(
try_find_preceding_boundary_data(map, from, generate_boundary_data),
|(previous_identifier, _)| {
if *previous_identifier == DisplayPoint::zero() {
return None;
}
try_find_preceding_boundary_data(
map,
movement::left(map, *previous_identifier),
generate_boundary_data,
)
},
);
let boundaries = forwards
.interleave(backwards)
.take(2)
.filter_map(|(identifier, reach_boundary)| reach_boundary(identifier, map)) .filter_map(|(identifier, reach_boundary)| reach_boundary(identifier, map))
.filter(|boundary| match boundary.cmp(&from) { .filter(|boundary| match boundary.cmp(&from) {
Ordering::Equal => true, Ordering::Equal => true,