chiark / gitweb /
reorg
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 22 Aug 2020 21:21:51 +0000 (22:21 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 22 Aug 2020 21:21:51 +0000 (22:21 +0100)
src/spec.rs

index 71717f0b5da1df3949d9133a2a8a1f87323ad6b3..5470e155d074319b08da6a64c3cc52e5d87aaf7d 100644 (file)
@@ -3,6 +3,8 @@
 
 use crate::imports::*;
 
+//---------- Table TOML file ----------
+
 #[derive(Debug,Serialize,Deserialize)]
 pub struct TableSpec {
   pub players : Vec<PlayerSpec>,
@@ -15,6 +17,14 @@ pub struct PlayerSpec {
   pub access: Option<Box<dyn PlayerAccessSpec>>,
 }
 
+#[derive(Debug,Serialize,Deserialize)]
+struct FixedToken { token: RawToken }
+
+#[derive(Debug,Serialize,Deserialize)]
+struct TokenOnStdout;
+
+//---------- Game TOML file ----------
+
 #[derive(Debug,Serialize,Deserialize)]
 pub struct GameSpec {
   pub table_size : Option<Pos>,
@@ -31,6 +41,8 @@ pub struct PiecesSpec {
   pub info : Box<dyn PieceSpec>,
 }
 
+//----------  Implementation ----------
+
 #[typetag::serde(tag="access")]
 pub trait PlayerAccessSpec : Debug {
   fn token_mgi(&self, _player: PlayerId) -> Option<MgmtGameInstruction> {
@@ -40,9 +52,6 @@ pub trait PlayerAccessSpec : Debug {
     -> Result<(),AE>;
 }
 
-#[derive(Debug,Serialize,Deserialize)]
-struct FixedToken { token: RawToken }
-
 #[typetag::serde]
 impl PlayerAccessSpec for FixedToken {
   fn token_mgi(&self, player: PlayerId) -> Option<MgmtGameInstruction> {
@@ -55,9 +64,6 @@ impl PlayerAccessSpec for FixedToken {
   fn deliver_tokens(&self, _ps: &PlayerSpec, _tokens: &[RawToken]) { }
 }
 
-#[derive(Debug,Serialize,Deserialize)]
-struct TokenOnStdout;
-
 #[typetag::serde]
 impl PlayerAccessSpec for TokenOnStdout {
   #[throws(AE)]