chiark / gitweb /
break out ConnForGame::info
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 3 Jan 2021 02:17:01 +0000 (02:17 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 3 Jan 2021 02:17:01 +0000 (02:17 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/bin/otter.rs

index c0faf783ef7ab61026ebab805b29469a4290fc75..fb95544cfe2e24b2355ff6a243e4f83c51e74a92 100644 (file)
@@ -549,16 +549,22 @@ impl ConnForGame {
     responses
   }
 
+  #[throws(AE)]
+  fn info(&mut self) -> MgmtGameResponseGameInfo {
+    let resp = self.alter_game(vec![MGI::Info], None)?;
+    match &resp[..] {
+      [MGR::Info(info)] => info.clone(),
+      x => throw!(anyhow!("unexpected response to game Info: {:?}", &x)),
+    }
+  }
+
   #[throws(AE)]
   fn we_are_player(&mut self, ma: &MainOpts)
                    -> Option<(PlayerId, MgmtPlayerInfo)>
   {
     let players = {
-      let resp = self.alter_game(vec![MGI::Info], None)?;
-      match resp.as_slice() {
-        [MGR::Info(MgmtGameResponseGameInfo { players, .. })] => players,
-        x => throw!(anyhow!("unexpected response to game Info: {:?}", &x)),
-      }.clone()
+      let MgmtGameResponseGameInfo { players, .. } = self.info()?;
+      players
     };
 
     players.into_iter().filter(