chiark / gitweb /
PlayerId new style
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 27 Jun 2020 12:54:26 +0000 (13:54 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 27 Jun 2020 12:54:26 +0000 (13:54 +0100)
src/global.rs
src/keydata.rs

index 9cf260c17547731f87c37a65270bfefb84f983eb..6b39b44d1e800072deb5eeeae57fb24218989130 100644 (file)
@@ -8,12 +8,8 @@ slotmap::new_key_type!{
   pub struct ClientId;
 }
 
-type SKD = slotmap::KeyData;
-#[derive(Copy,Clone,PartialEq,Eq,Serialize,Deserialize,Debug)]
-pub struct PlayerId (SKD);
-impl slotmap::Key for PlayerId { }
-impl From<SKD> for PlayerId { fn from(d : SKD) -> Self { PlayerId(d) } }
-impl From<PlayerId> for SKD { fn from(p : PlayerId) -> Self { p.0 } }
+visible_slotmap_key!{PlayerId}
+display_consequential_impls!{PlayerId}
 
 #[derive(Clone,Debug,Eq,PartialEq,Ord,PartialOrd,Hash)]
 struct RawToken (String);
index 44b2ea51b95a3f7dd7b6a164aa0027688dabbbeb..7b4c77d93c36dfaec693fc05d4ea610f02d26549 100644 (file)
@@ -48,12 +48,10 @@ macro_rules! visible_slotmap_key {
       fn fmt(&self, f : &mut fmt::Formatter) { slotkey_write(self.0,'.',f)? }
     }
 
-    impl TryFrom<&str> for VisiblePieceId {
+    impl TryFrom<&str> for $x {
       type Error = AE;
       #[throws(AE)]
-      fn try_from(s : &str) -> VisiblePieceId {
-        VisiblePieceId(slotkey_parse(s,'.')?)
-      }
+      fn try_from(s : &str) -> $x { $x(slotkey_parse(s,'.')?) }
     }
 
     impl slotmap::Key for $x { }