This commit is contained in:
vcoppe committed 2026-10-02 18:06:45 +02:00
1 parent 5868595a6c
commit b7db73cf77
18 files changed
+394 -133

No files matched your search

+16 -15
View File
@@ -8,43 +8,44 @@ macro_rules! for_each_window {
|$a:ident, $b:ident| $distance:expr,
|$i:ident, $l:ident, $r:ident| $body:block,
) => {{
let mut start = $left.unwrap_or_default();
let mut cur = $left;
while let Some(idx) = cur {
let mut window_start = $left.unwrap_or_default();
let mut window_center = $left;
let mut window_end = $left.unwrap_or_default();
while let Some(idx) = window_center {
// advance left if needed
while start != idx && {
let $a = start;
while window_start != idx && {
let $a = window_start;
let $b = idx;
$distance
} > $window {
if let Some(next) = $trkseg.next_index(Some(start)) {
if let Some(next) = $trkseg.next_index(Some(window_start)) {
if next == idx {
break;
}
start = next;
window_start = next;
} else {
break;
}
}
// advance right if needed
let mut end = idx;
while let Some(next) = $trkseg.next_index(Some(end)) {
if {
window_end = window_end.max(idx);
while let Some(next) = $trkseg.next_index(Some(window_end)) {
if window_end != idx && {
let $a = idx;
let $b = end;
let $b = next;
$distance
} > $window {
break;
}
end = next;
window_end = next;
}
// apply body
let $i = idx;
let $l = start;
let $r = end;
let $l = window_start;
let $r = window_end;
$body
// go next
cur = $trkseg.next_index(cur);
window_center = $trkseg.next_index(window_center);
}
}};
}