Fine { }
},
+ ListGames { } => {
+ let scope = cs.scope.as_ref().ok_or(NoScope)?;
+ let mut games = list_games(Some(scope));
+ games.sort_unstable();
+ GamesList { games }
+ },
+
// let game = cs.lookup_game(&game)?;
}
Noop { },
SetScope { scope: ManagementScope },
CreateGame { name: String, insns: Vec<MgmtGameInstruction> },
+ ListGames { },
}
#[derive(Debug,Serialize,Deserialize)]
Fine { },
Error { error: MgmtError },
ErrorAfter { successes: usize, error: MgmtError },
+ GamesList { games: Vec<Arc<InstanceName>> },
}
#[derive(Debug,Serialize,Deserialize)]
}
}
+pub fn list_games(scope: Option<&ManagementScope>)
+ -> Vec<Arc<InstanceName>> {
+ let games = GLOBAL.games.read().unwrap();
+ let out : Vec<Arc<InstanceName>> =
+ games.keys()
+ .filter(|k| scope == None || scope == Some(&k.scope))
+ .map(|k| k.clone())
+ .collect();
+ out
+}
+
// ---------- Lookup and token API ----------
impl AccessId for PlayerId {