From a11b28c06b9eb883c74f4fb77250098bcb6dbbfa Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 3 Apr 2021 03:28:30 +0100 Subject: [PATCH] updates: abolish Vec part of UpdateFromOpComplex This is redundant. Signed-off-by: Ian Jackson --- daemon/api.rs | 7 +++---- src/clock.rs | 3 +-- src/deck.rs | 3 ++- src/hand.rs | 2 +- src/updates.rs | 11 ++++++++++- 5 files changed, 17 insertions(+), 9 deletions(-) diff --git a/daemon/api.rs b/daemon/api.rs index 412919cb..42f86e62 100644 --- a/daemon/api.rs +++ b/daemon/api.rs @@ -60,7 +60,7 @@ mod op { impl Complex for T where T: Core + Simple { #[throws(ApiPieceOpError)] fn op_complex(&self, a: ApiPieceOpArgs) -> UpdateFromOpComplex { - (self.op(a)?, vec![], None) + (self.op(a)?, None) } } } @@ -164,13 +164,12 @@ fn api_piece_op(form: Json>) warn!("api_piece_op ERROR {:?}: {:?}", &form, &err); Err(err)?; }, - Ok((PieceUpdate { wrc, log, ops }, updates, unprepared)) => { + Ok((PieceUpdate { wrc, log, ops }, 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); } @@ -537,7 +536,7 @@ api_route!{ wrc, PieceUpdateOp::Modify(()), logents, - ).into(), vec![], None) + ).into(), None) }, _ => break, diff --git a/src/clock.rs b/src/clock.rs index bed54213..945ae2dd 100644 --- a/src/clock.rs +++ b/src/clock.rs @@ -698,7 +698,7 @@ impl PieceTrait for Clock { WhatResponseToClientOp::Unpredictable, PieceUpdateOp::Modify(()), log); - (r.into(), vec![], None) + (r.into(), None) } UniversalImage => { let r: UpdateFromOpComplex = ( @@ -707,7 +707,6 @@ impl PieceTrait for Clock { log, ops: PieceUpdateOps::PerPlayer(default()), }, - vec![], unprepared_update(piece), ); r diff --git a/src/deck.rs b/src/deck.rs index 80c15fc1..8b1f831f 100644 --- a/src/deck.rs +++ b/src/deck.rs @@ -229,7 +229,8 @@ impl PieceTrait for Deck { (PieceUpdate { wrc, log, ops: PUOs::Simple(PUO::Modify(())), - }, xupdates, None) + }, + xupdates.into_unprepared()) } fn occultation_notify_hook(&self, piece: PieceId) -> UnpreparedUpdates { diff --git a/src/hand.rs b/src/hand.rs index c18fe036..8eb6b9e9 100644 --- a/src/hand.rs +++ b/src/hand.rs @@ -309,6 +309,6 @@ impl PieceTrait for Hand { (PieceUpdate { wrc, log, ops: PUOs::Simple(PUO::Modify(())), - }, xupdates, None) + }, xupdates.into_unprepared()) } } diff --git a/src/updates.rs b/src/updates.rs index 828e14c7..263088c1 100644 --- a/src/updates.rs +++ b/src/updates.rs @@ -167,7 +167,6 @@ pub enum PieceUpdateOp { pub type UpdateFromOpComplex = ( PieceUpdate, - Vec<(PieceId, PieceUpdateOps)>, UnpreparedUpdates, ); @@ -966,6 +965,16 @@ impl PreparedUpdate { } } +#[ext(pub)] +impl Vec<(PieceId, PieceUpdateOps)> { + fn into_unprepared(self) -> UnpreparedUpdates { + Some(Box::new( + move |buf: &mut PrepareUpdatesBuffer| { + buf.piece_updates(self) + })) + } +} + impl<'u> Into> for TransmitUpdateLogEntry<'u> { fn into(self) -> FormattedLogEntry<'u> { let (tz, logent) = self; -- 2.30.2