chiark / gitweb /
hidden: Make fallible and fallback
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 24 Mar 2021 12:52:47 +0000 (12:52 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 24 Mar 2021 12:52:47 +0000 (12:52 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/hidden.rs

index e83934aa0721bc6b54ec6b3a8be0c0319e9d072b..056e6d551ede619cc83f805e725c44f26794229b 100644 (file)
@@ -243,12 +243,14 @@ impl OccDisplacement {
   fn place(&self, _ppiece_use_size: Pos, notch: NotchNumber) -> Pos {
     use OccDisplacement as OD;
     match self {
-      OD::Rect{area} => {
+      OD::Rect{area} => (|| Some({
         let x: Coord = (notch % 3).try_into().unwrap(); // xxx
         let pos = (area.0[0] + PosC([x*4, 0])).unwrap(); // xxx
         let pos = (pos + PosC([5,5])).unwrap(); // xxx
         pos
-      },
+      }))().unwrap_or_else(||{
+        area.middle()
+      })
     }
   }
 }