#[allow(non_camel_case_types)]
#[derive(Debug,Serialize)]
struct ErrorTransmitUpdateEntry_Piece<'u> {
+ cseq: Option<ClientSequence>,
#[serde(flatten)]
tue: TransmitUpdateEntry_Piece<'u>,
}
ESVU::TokenRevoked => TUE::Error(ESVU::TokenRevoked),
ESVU::PieceOpError { error, partially,
ref error_msg, ref state } => {
- let c = state.by_client.as_ref().map(|(_,c,_)| *c);
+ let c = state.by_client.as_ref().map(|(_,c,_ )| *c);
+ let cseq = state.by_client.as_ref().map(|(_,_,cseq)| *cseq);
if c == None || c == Some(dest) {
let tue = match pue_piece_to_tue_p(state, player) {
Some(tue) => tue,
error, error_msg, partially,
state: { ETUE_P {
tue,
+ cseq,
} },
}
)
piece: PieceId,
op: Object,
};
+type ErrorTransmitUpdateEntry_Piece = TransmitUpdateEntry_Piece & {
+ cseq: ClientSeq | null,
+};
function handle_piece_update(j: TransmitUpdateEntry_Piece) {
console.log('PIECE UPDATE ',j)
type PieceOpError = {
error: string,
- state: TransmitUpdateEntry_Piece,
+ error_msg: string,
+ state: ErrorTransmitUpdateEntry_Piece,
};
update_error_handlers.PieceOpError = <MessageHandler>function
(m: PieceOpError) {
let piece = m.state.piece;
+ let cseq = m.state.cseq;
let p = pieces[piece];
console.log('ERROR UPDATE PIECE ', m, p);
if (p == null) return;