[[players]]
nick = "alice"
-access = "fixed"
-token = "kmqAKPwK4TfReFjMor8MJhdRPBcwIBpe"
+access = { deliver = "FixedToken", token = "kmqAKPwK4TfReFjMor8MJhdRPBcwIBpe" }
[[players]]
nick = "bob"
-access = "fixed"
-token = "ccg9kzoTh758QrVE1xMY7BQWB36dNJTx"
+access = { deliver = "FixedToken", token = "ccg9kzoTh758QrVE1xMY7BQWB36dNJTx" }
setup_table(&mut chan, &spec)?;
- eprintln!("CREATE-TABLE DID SETUP_TABLE NEEDS GAMESPEC"); // xxx
+ eprintln!("CREATE-TABLE DID SETUP_TABLE NEEDS GAMESPEC {:?}",
+ &spec); // xxx
}
inventory::submit!{Subcommand(
#[derive(Debug,Serialize,Deserialize)]
pub struct PlayerSpec {
pub nick: String,
- #[serde(flatten)]
pub access: Option<Box<dyn PlayerAccessSpec>>,
}
pub info : Box<dyn PieceSpec>,
}
-#[typetag::serde(tag="access")]
+#[typetag::serde(tag="deliver")]
pub trait PlayerAccessSpec : Debug {
fn token_mgi(&self, _player: PlayerId) -> Option<MgmtGameInstruction> {
None
}
#[derive(Debug,Serialize,Deserialize)]
-struct FixedToken(RawToken);
+struct FixedToken { token: RawToken }
#[typetag::serde]
impl PlayerAccessSpec for FixedToken {
fn token_mgi(&self, player: PlayerId) -> Option<MgmtGameInstruction> {
Some(MgmtGameInstruction::SetFixedPlayerAccess {
player,
- token: self.0.clone(),
+ token: self.token.clone(),
})
}
#[throws(AE)]