}
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)
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,