impl<T> Complex for T where T: Core + Simple {
#[throws(ApiPieceOpError)]
fn op_complex(&self, a: ApiPieceOpArgs) -> UpdateFromOpComplex {
- (self.op(a)?, vec![])
+ (self.op(a)?, vec![], None)
}
}
}
warn!("api_piece_op ERROR {:?}: {:?}", &form, &err);
Err(err)?;
},
- Ok((PieceUpdate { wrc, log, ops }, updates)) => {
+ Ok((PieceUpdate { wrc, log, ops }, updates, unprepared)) => {
let mut buf = PrepareUpdatesBuffer::new(g,
Some((wrc, client, form.cseq)),
Some(1 + log.len()));
buf.piece_update(piece, ops);
buf.piece_updates(updates);
buf.log_updates(log);
+ if let Some(unprepared) = unprepared { unprepared(&mut buf); }
debug!("api_piece_op OK: {:?}", &form);
}
wrc,
PieceUpdateOp::Modify(()),
logents,
- ).into(), vec![])
+ ).into(), vec![], None)
},
_ => break,
SetZLevel(ZL),
}
-pub type UpdateFromOpComplex = (PieceUpdate, Vec<(PieceId, PieceUpdateOps)>);
+pub type UpdateFromOpComplex = (
+ PieceUpdate,
+ Vec<(PieceId, PieceUpdateOps)>,
+ UnpreparedUpdates,
+);
pub type PieceUpdateFromOpSimple = (
WhatResponseToClientOp,