From: Ian Jackson Date: Sun, 3 Jan 2021 02:17:01 +0000 (+0000) Subject: break out ConnForGame::info X-Git-Tag: otter-0.2.0~45 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=27f6dfe34543c84d00fc60e850691111e4229c1b;p=otter.git break out ConnForGame::info Signed-off-by: Ian Jackson --- diff --git a/src/bin/otter.rs b/src/bin/otter.rs index c0faf783..fb95544c 100644 --- a/src/bin/otter.rs +++ b/src/bin/otter.rs @@ -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(