autorouter: if unable to route to compare detours, assume equal

This commit is contained in:
Mikolaj Wielgus 2024-08-26 01:33:18 +02:00
parent 31bc9a9447
commit 72e630543d
1 changed files with 7 additions and 2 deletions

View File

@ -1,3 +1,5 @@
use std::cmp::Ordering;
use contracts::debug_requires; use contracts::debug_requires;
use enum_dispatch::enum_dispatch; use enum_dispatch::enum_dispatch;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
@ -257,8 +259,11 @@ impl<M: AccessMesadata> Invoker<M> {
ratlines.sort_unstable_by(|a, b| { ratlines.sort_unstable_by(|a, b| {
let mut compare_detours = let mut compare_detours =
self.autorouter.compare_detours_ratlines(*a, *b).unwrap(); self.autorouter.compare_detours_ratlines(*a, *b).unwrap();
let (al, bl) = compare_detours.finish(&mut self.autorouter).unwrap(); if let Ok((al, bl)) = compare_detours.finish(&mut self.autorouter) {
PartialOrd::partial_cmp(&al, &bl).unwrap() PartialOrd::partial_cmp(&al, &bl).unwrap()
} else {
Ordering::Equal
}
}); });
Ok::<Execute, InvokerError>(Execute::Autoroute( Ok::<Execute, InvokerError>(Execute::Autoroute(
self.autorouter.autoroute_ratlines(ratlines)?, self.autorouter.autoroute_ratlines(ratlines)?,