pub use imports::*;
pub use otter::prelude::*;
+pub use std::cell::{RefCell, RefMut};
+
pub use num_traits::NumCast;
pub use serde_json::json;
pub use structopt::StructOpt;
#[derive(Debug)]
pub struct SetupCore {
pub ds: DirSubst,
- pub mgmt_conn: MgmtChannelForGame,
+ pub mgmt_conn: RefCell<MgmtChannelForGame>,
server_child: Child,
pub wanted_tests: TrackWantedTests,
}
pub fn pause_otter(&self) -> OtterPaused {
self.otter_pauseable().pause()?
}
+
+ pub fn mgmt_conn<'m>(&'m self) -> RefMut<'m, MgmtChannelForGame> {
+ self.mgmt_conn.borrow_mut()
+ }
}
impl OtterPauseable {
),
SetupCore {
ds,
- mgmt_conn,
+ mgmt_conn: mgmt_conn.into(),
server_child,
wanted_tests,
})
mut f: F
) {
let exp = {
- let mut su = self.su_rc.borrow_mut();
- su.mgmt_conn.game_synch(TABLE.parse().unwrap())?
+ self.su_rc.borrow_mut().mgmt_conn()
+ .game_synch(TABLE.parse().unwrap())?
};
let efwrap = ef.map(|ef| {
move |s: &mut _, g, v: &_| { ef(s,g,v)?; Ok::<_,AE>(None) }
prepare_game(&self.su().ds, TABLE)?;
let mut alice = self.connect_player(&self.alice)?;
let mut bob = self.connect_player(&self.bob)?;
- self.su_mut().mgmt_conn.fakerng_load(&[&"1",&"0"])?;
+ self.su_mut().mgmt_conn().fakerng_load(&[&"1",&"0"])?;
let mut a_pieces = alice.pieces::<PIA>()?;
let mut b_pieces = alice.pieces::<PIB>()?;
#[throws(AE)]
fn synch_raw(&mut self) {
- let gen = self.su.mgmt_conn.game_synch(self.w.instance.clone())?;
+ let gen = self.su.mgmt_conn().game_synch(self.w.instance.clone())?;
(|| {
loop {
info!("{:?} gen={}", self, gen);