chiark / gitweb /
own PlayerId
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 27 Jun 2020 11:56:20 +0000 (12:56 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 27 Jun 2020 11:56:20 +0000 (12:56 +0100)
src/global.rs

index c3bf3536c62de7c98b561f31a0f639174d712ec7..9cf260c17547731f87c37a65270bfefb84f983eb 100644 (file)
@@ -5,10 +5,16 @@ use crate::imports::*;
 use lazy_static::lazy_static;
 
 slotmap::new_key_type!{
-  pub struct PlayerId;
   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 } }
+
 #[derive(Clone,Debug,Eq,PartialEq,Ord,PartialOrd,Hash)]
 struct RawToken (String);
 impl Borrow<str> for RawToken {