Now it can be written more nicely
This commit is contained in:
parent
fff15e983e
commit
eaa9d37a04
1 changed files with 5 additions and 29 deletions
|
@ -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,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue