From 486df1807b92d5b7152d2c6246b091bab9ec685c Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 30 Jan 2021 21:13:08 +0000 Subject: [PATCH] hidden prep: Pass PlayerId through TransmitUpdateEntry generation NFC. Signed-off-by: Ian Jackson --- src/sse.rs | 2 +- src/updates.rs | 16 +++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/sse.rs b/src/sse.rs index 9d3cad75..25da9809 100644 --- a/src/sse.rs +++ b/src/sse.rs @@ -52,7 +52,7 @@ impl UpdateReaderWN { fn write_next(&mut self, mut buf: &mut U, tz: &Timezone, next: &PreparedUpdate) where U : Write { - let tu = next.for_transmit(tz, self.client); + let tu = next.for_transmit(tz, self.player, self.client); write!(buf, "data: ")?; serde_json::to_writer(&mut buf, &tu)?; diff --git a/src/updates.rs b/src/updates.rs index 3cb6e953..e291ec62 100644 --- a/src/updates.rs +++ b/src/updates.rs @@ -569,19 +569,21 @@ impl<'r> Drop for PrepareUpdatesBuffer<'r> { type WRC = WhatResponseToClientOp; impl PreparedUpdate { - pub fn for_transmit<'u>(&'u self, tz: &'u Timezone, dest : ClientId) + pub fn for_transmit<'u>(&'u self, tz: &'u Timezone, player: PlayerId, dest : ClientId) -> TransmitUpdate<'u> { type ESVU = ErrorSignaledViaUpdate; type PUE = PreparedUpdateEntry; type TUE<'u> = TransmitUpdateEntry<'u>; let mut ents = vec![]; - fn pue_piece_to_tue_p(pue_p: &PUE_P) -> TUE_P { + fn pue_piece_to_tue_p(pue_p: &PUE_P, _player: PlayerId) + -> TUE_P { let PUE_P { piece, ref op, .. } = *pue_p; TUE_P { piece, op: op.map_ref() } } - fn pue_piece_to_tue(pue_p: &PUE_P, dest: ClientId) -> TUE { + fn pue_piece_to_tue(pue_p: &PUE_P, player: PlayerId, dest: ClientId) + -> TUE { let PUE_P { piece, by_client, ref op } = *pue_p; let ns = ||op.new_state(); enum FTG<'u> { @@ -608,7 +610,7 @@ impl PreparedUpdate { let zg = op.new_z_generation(); TUE::Recorded { piece, cseq, zg, svg: ns.map(|ns| &ns.svg) } }, - FTG::Piece => TUE::Piece(pue_piece_to_tue_p(&pue_p)), + FTG::Piece => TUE::Piece(pue_piece_to_tue_p(&pue_p, player)), FTG::Exactly(x) => x, } } @@ -617,7 +619,7 @@ impl PreparedUpdate { trace!("for_transmit to={:?} {:?}", dest, &u); let ue = match u { &PUE::Piece(ref pue_p) => { - pue_piece_to_tue(pue_p, dest) + pue_piece_to_tue(pue_p, player, dest) } PUE::Log(logent) => { TUE::Log((&tz, &logent)) @@ -642,14 +644,14 @@ impl PreparedUpdate { ESVU::PieceOpError { error, partially, ref state } => { let c = state.by_client.as_ref().map(|(_,c,_)| *c); if c == None || c == Some(dest) { - let state = pue_piece_to_tue_p(state); + let state = pue_piece_to_tue_p(state, player); TUE::Error( ESVU::PieceOpError { error, partially, state } ) } else { match partially { POEPP::Unprocessed => continue, - POEPP::Partially => pue_piece_to_tue(&state, dest), + POEPP::Partially => pue_piece_to_tue(&state, player, dest), } } } -- 2.30.2