chiark / gitweb /
Rename/refactor MgmtChannelForGame
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 27 Feb 2021 18:51:12 +0000 (18:51 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 27 Feb 2021 18:51:12 +0000 (18:51 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/bin/otter.rs
src/mgmtchannel.rs

index 6f0d9820bc144543c9492dcf1e7646f1ab59be37..c80b91d0df7c5502e196c66bfdc41ad3c3d7201b 100644 (file)
@@ -579,12 +579,11 @@ fn access_account(ma: &MainOpts) -> Conn {
 }
 
 #[throws(AE)]
-fn access_game(ma: &MainOpts, table_name: &String) -> ConnForGame {
-  ConnForGame {
-    conn: access_account(ma)?.chan,
-    game: ma.instance_name(table_name),
-    how: MgmtGameUpdateMode::Online,
-  }
+fn access_game(ma: &MainOpts, table_name: &String) -> MgmtChannelForGame {
+  access_account(ma)?.chan.for_game(
+    ma.instance_name(table_name),
+    MgmtGameUpdateMode::Online,
+  )
 }
 
 //---------- list-games ----------
@@ -660,11 +659,10 @@ mod reset_game {
 
   fn call(_sc: &Subcommand, ma: MainOpts, args: Vec<String>) ->Result<(),AE> {
     let args = parse_args::<Args,_>(args, &subargs, &ok_id, None);
-    let mut chan = ConnForGame {
-      conn: access_account(&ma)?.chan,
-      game: ma.instance_name(&args.table_name),
-      how: MgmtGameUpdateMode::Bulk,
-    };
+    let mut chan = access_account(&ma)?.chan.for_game(
+      ma.instance_name(&args.table_name),
+      MgmtGameUpdateMode::Bulk,
+    );
     let GameSpec {
       table_size,
       pieces,
index ed88647cc45fae71279c107856b49931239f23e6..bd3d5a1bd9751d76e85ddcb7d06d9298ef066fea 100644 (file)
@@ -104,6 +104,14 @@ impl MgmtChannel {
     items.sort();
     items
   }
+
+  pub fn for_game(self, game: InstanceName, how: MgmtGameUpdateMode)
+                  -> MgmtChannelForGame {
+    MgmtChannelForGame {
+      chan: self,
+      game, how
+    }
+  }
 }
 
 pub trait IoTryClone: Sized {
@@ -115,14 +123,14 @@ impl IoTryClone for UnixStream {
 }
 
 
-pub struct ConnForGame {
-  pub conn: MgmtChannel,
+pub struct MgmtChannelForGame {
+  pub chan: MgmtChannel,
   pub game: InstanceName,
   pub how: MgmtGameUpdateMode,
 }
-deref_to_field_mut!{ConnForGame, MgmtChannel, conn}
+deref_to_field_mut!{MgmtChannelForGame, MgmtChannel, chan}
 
-impl ConnForGame {
+impl MgmtChannelForGame {
   #[throws(AE)]
   pub fn alter_game(&mut self, insns: Vec<MgmtGameInstruction>,
                 f: Option<&mut dyn FnMut(&MgmtGameResponse) -> Result<(),AE>>)