chiark / gitweb /
piece aliases: Commands for defining/deleting them
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 25 Mar 2021 18:34:09 +0000 (18:34 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 25 Mar 2021 19:19:39 +0000 (19:19 +0000)
Nothing generates these commands yet.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
daemon/cmdlistener.rs
src/commands.rs

index 727061d1e9f383fe505d67e71f75b8c3dac114d0..9d27589003d7fd34266c073ce18e2166e3fb000a 100644 (file)
@@ -375,6 +375,17 @@ fn execute_game_insn<'cs, 'igr, 'ig: 'igr>(
        None, ig)
     },
 
+    MGI::DeletePieceAlias(alias) => {
+      let ig = cs.check_acl(&ag, ig, PCH::Instance, &[TP::ChangePieces])?.0;
+      ig.pcaliases.remove(&alias);
+      (U{ pcs: vec![], log: vec![], raw: None }, MGR::Fine, None, ig)
+    },
+    MGI::DefinePieceAlias { alias, target } => {
+      let ig = cs.check_acl(&ag, ig, PCH::Instance, &[TP::ChangePieces])?.0;
+      ig.pcaliases.insert(alias, target);
+      (U{ pcs: vec![], log: vec![], raw: None }, MGR::Fine, None, ig)
+    },
+
     MGI::Synch => {
       let (mut ig, _) = cs.check_acl(&ag, ig, PCH::Instance, &[TP::Play])?;
       let mut buf = PrepareUpdatesBuffer::new(&mut ig, None, None);
index 158d6e9c9556e7725f17d5ae7dd0c763ac4c9b7e..e10239d5b4f6a61289e99ffe5a45ccb65c457703 100644 (file)
@@ -87,6 +87,8 @@ pub enum MgmtGameInstruction {
   ListPieces,
   AddPieces(PiecesSpec),
   DeletePiece(PieceId),
+  DeletePieceAlias(String),
+  DefinePieceAlias { alias: String, target: Box<dyn PieceSpec> },
 
   ResetPlayerAccess(PlayerId),
   RedeliverPlayerAccess(PlayerId),