chiark / gitweb /
add links to game state
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 3 Jan 2021 00:59:28 +0000 (00:59 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 3 Jan 2021 00:59:28 +0000 (00:59 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
daemon/cmdlistener.rs
src/gamestate.rs
src/global.rs

index bb1ecec7865c1677901692384a618bb9e4ad782d..b56ae5ffd901c1cb94142c30f1d65ca9805c9188 100644 (file)
@@ -160,6 +160,7 @@ fn execute(cs: &mut CommandStream, cmd: MgmtCommand) -> MgmtResponse {
         log: default(),
         gen: Generation(0),
         max_z: default(),
+        links: default(),
       };
 
       let acl = default();
index 7ac57e15bcaa01fefeed3d870ddc443213fb24bf..4c4a35825dc2448765d5b1a84777cd251bfb85be 100644 (file)
@@ -52,6 +52,7 @@ pub struct GameState {
   pub log: VecDeque<(Generation, Arc<CommittedLogEntry>)>,
   pub max_z: ZCoord,
   pub players: DenseSlotMap<PlayerId, GPlayerState>,
+  #[serde(default)] pub links: HashMap<LinkKind, Html>,
 }
 
 #[derive(Debug,Serialize,Deserialize,Clone)]
@@ -83,6 +84,13 @@ pub struct CommittedLogEntry {
   pub logent: LogEntry,
 }
 
+#[derive(Copy,Clone,Debug,Eq,PartialEq,Ord,PartialOrd,Hash)]
+#[derive(Serialize,Deserialize)]
+pub enum LinkKind {
+  Voice,
+  Info,
+}
+
 // ---------- piece trait, and rendering ----------
 
 #[typetag::serde]
index 2c5cc46255f8758f5982f93e2efe0088c374012d..192cce29ac4450d83da3430623766bcba5fc9012 100644 (file)
@@ -559,6 +559,7 @@ impl<'ig> InstanceGuard<'ig> {
       table_size: self.c.g.gs.table_size,
       gen: self.c.g.gs.gen,
       max_z: self.gs.max_z.clone(),
+      links: self.gs.links.clone(),
       players,
       // These have special handling
       log: default(),