chiark / gitweb /
updates: abolish Vec part of UpdateFromOpComplex
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 3 Apr 2021 02:28:30 +0000 (03:28 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 3 Apr 2021 02:28:30 +0000 (03:28 +0100)
This is redundant.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
daemon/api.rs
src/clock.rs
src/deck.rs
src/hand.rs
src/updates.rs

index 412919cbf9176737d359ed81860c7055385b7fbd..42f86e625ca954279ec62f242ff67be1d38a5cc3 100644 (file)
@@ -60,7 +60,7 @@ mod op {
   impl<T> 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<O: op::Complex>(form: Json<ApiPiece<O>>)
       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,
index bed54213b31a5e115e16121b0b9225b42bda1b45..945ae2ddeca15358c75a8bba48b039b404c17c92 100644 (file)
@@ -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
index 80c15fc19ec5a1a1820a5a888a2b92c4b0d1256a..8b1f831f0d883904c8a52eb0a2cd1b53fe4a4731 100644 (file)
@@ -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 {
index c18fe036c68d346549d721bf1b0c7060454afc83..8eb6b9e900c51633c5fa261dc5ca3f51970a6da9 100644 (file)
@@ -309,6 +309,6 @@ impl PieceTrait for Hand {
     (PieceUpdate {
       wrc, log,
       ops: PUOs::Simple(PUO::Modify(())),
-    }, xupdates, None)
+    }, xupdates.into_unprepared())
   }
 }
index 828e14c74f301761f3a9cfbfa57327d845d0719f..263088c16be7fcb1cc55e96a8e8c7e67154c7cd6 100644 (file)
@@ -167,7 +167,6 @@ pub enum PieceUpdateOp<NS,ZL> {
 
 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<FormattedLogEntry<'u>> for TransmitUpdateLogEntry<'u> {
   fn into(self) -> FormattedLogEntry<'u> {
     let (tz, logent) = self;