chiark / gitweb /
allow map_piece_update_op to return None
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 14 Mar 2021 19:24:25 +0000 (19:24 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 14 Mar 2021 19:24:25 +0000 (19:24 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/pcrender.rs
src/updates.rs

index d25167fe6b0b5fc6df3b1670849d5bb2f59a6d73..02e96ed08529eabd9dfbcdf244e134dd4c60d043 100644 (file)
@@ -39,9 +39,9 @@ impl PieceRenderInstructions {
   pub fn map_piece_update_op(&self, ioccults: &IOccults,
                              gpc: &GPiece, ipc: &IPiece,
                              op: PieceUpdateOp<(),()>
-  ) -> PieceUpdateOp<PreparedPieceState, ZLevel>
+  ) -> Option<PieceUpdateOp<PreparedPieceState, ZLevel>>
   {
-    op.try_map(
+    let op = op.try_map(
       |()|{
         let ns = self.prep_piecestate(ioccults, gpc, ipc)?;
         <Result<_,InternalError>>::Ok(ns)
@@ -49,7 +49,8 @@ impl PieceRenderInstructions {
       |()|{
         Ok(gpc.zlevel.clone())
       }
-    )?
+    )?;
+    Some(op)
   }
   
   #[throws(IE)]
index b6eb9013727fe9a9413f0dbffcbf6b0b86fc9614..e73235b25ba49303576de20045ee0516f6f9b6bc 100644 (file)
@@ -507,8 +507,7 @@ impl<'r> PrepareUpdatesBuffer<'r> {
     max_z.update_max(&gpc.zlevel.z);
 
     let op = pri.map_piece_update_op(ioccults, gpc, ipc, op)?;
-
-    Some(PreparedPieceUpdate {
+    op.map(|op| PreparedPieceUpdate {
       piece: pri.vpid,
       op,
     })