chiark / gitweb /
Refactor: Break out pri.map_piece_update_op
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 14 Mar 2021 19:12:06 +0000 (19:12 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 14 Mar 2021 19:12:06 +0000 (19:12 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/pcrender.rs
src/updates.rs

index e1f8301d6016ef2cec39bf3b852f27b2a9066810..6cbb015f8889ef04d1824f5cceb7700f73312095 100644 (file)
@@ -35,6 +35,23 @@ impl VisiblePieceAngle {
 }
 
 impl PieceRenderInstructions {
+  #[throws(IE)]
+  pub fn map_piece_update_op(&self, ioccults: &IOccults,
+                             gpc: &GPiece, ipc: &IPiece,
+                             op: PieceUpdateOp<(),()>
+  ) -> PieceUpdateOp<PreparedPieceState, ZLevel>
+  {
+    op.try_map(
+      |()|{
+        let ns = self.prep_piecestate(ioccults, gpc, ipc)?;
+        <Result<_,InternalError>>::Ok(ns)
+      },
+      |()|{
+        Ok(gpc.zlevel.clone())
+      }
+    )?
+  }
+  
   #[throws(IE)]
   pub fn prep_piecestate(&self, ioccults: &IOccults,
                          gpc: &GPiece, ipc: &IPiece)
index 16233ce9b26b2d23f435ac47a3e9c41d9c69c72b..b6eb9013727fe9a9413f0dbffcbf6b0b86fc9614 100644 (file)
@@ -506,15 +506,7 @@ impl<'r> PrepareUpdatesBuffer<'r> {
 
     max_z.update_max(&gpc.zlevel.z);
 
-    let op = op.try_map(
-      |()|{
-        let ns = pri.prep_piecestate(ioccults, gpc, ipc)?;
-        <Result<_,InternalError>>::Ok(ns)
-      },
-      |()|{
-        Ok(gpc.zlevel.clone())
-      }
-    )?;
+    let op = pri.map_piece_update_op(ioccults, gpc, ipc, op)?;
 
     Some(PreparedPieceUpdate {
       piece: pri.vpid,