}
};
- if let Some(unprepared) = if_chain! {
+ if_chain! {
let g = &mut *ig;
if let Some(was_held) = was_held;
if let Some(gpc) = g.gs.pieces.get_mut(piece);
piece,
was_held,
).map_err(|e| error!("internal error on change hook: {:?}", e));
- then { unprepared }
- else { None }
- } {
- let mut prepub = PrepareUpdatesBuffer::new(&mut ig, None);
- unprepared(&mut prepub);
- prepub.finish();
+ then {
+ PrepareUpdatesBuffer::only_unprepared(&mut ig, unprepared);
+ }
}
Ok::<(),Fatal>(())
&g.ipieces))
});
- if let Some(unprepared) = unprepared_outer {
- let mut prepub = PrepareUpdatesBuffer::new(&mut ig, None);
- unprepared(&mut prepub);
- prepub.finish();
- }
+ PrepareUpdatesBuffer::only_unprepared(&mut ig, unprepared_outer);
ok?;
""
}
}
+ pub fn add_unprepared(&mut self, unprepared: UnpreparedUpdates) {
+ if let Some(unprepared) = unprepared {
+ unprepared(self);
+ }
+ }
+
+ pub fn only_unprepared(ig: &'r mut Instance, unprepared: UnpreparedUpdates) {
+ if let Some(unprepared) = unprepared {
+ let mut prepub = PrepareUpdatesBuffer::new(ig, None);
+ unprepared(&mut prepub);
+ prepub.finish();
+ }
+ }
+
pub fn finish(self) { }
}