chiark / gitweb /
wip
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 28 Jun 2020 20:11:14 +0000 (21:11 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 28 Jun 2020 20:11:14 +0000 (21:11 +0100)
src/bin/server.rs
src/global.rs
src/keydata.rs

index efd284647e106def199009f44fa71ae9a1e54bbb..83b322b3abfcc11d0389e2abd7985f8cc8486964 100644 (file)
@@ -231,10 +231,9 @@ struct APIForm {
 
 #[get("/_/updates/<token>/<clientid>")]
 #[throws(RE)]
-fn updates(token : &RawStr, clientid : u64) -> impl response::Responder<'static> {
+fn updates(token : &RawStr, clientid : String) -> impl response::Responder<'static> {
   let iad = lookup_token(token.as_str()).ok_or_else(|| anyhow!("unknown token"))?;
-  let clientid = slotmap::KeyData::from_ffi(clientid);
-  let clientid = clientid.into();
+  let clientid = TryFrom::try_from(clientid.as_ref())?;
   let _ = {
     let mut ig = iad.i.lock().map_err(|e| anyhow!("lock poison {:?}",&e))?;
     let g = &mut ig.gs;
index 57de86d6b9ad0208d297711edcfa01d3309f0f3d..357eb2ec7508f3725f66a5a33a796f2b8dfcad5e 100644 (file)
@@ -4,10 +4,7 @@
 use crate::imports::*;
 use lazy_static::lazy_static;
 
-slotmap::new_key_type!{
-  pub struct ClientId;
-}
-
+visible_slotmap_key!{ ClientId('C') }
 visible_slotmap_key!{ PlayerId('#') }
 
 #[derive(Clone,Debug,Eq,PartialEq,Ord,PartialOrd,Hash)]
index 2b8799b7976a6ac456f00873b8fdad62121e037e..78563de3fbed5638c60116a0d94e3626e0bb31dc 100644 (file)
@@ -38,7 +38,7 @@ pub fn slotkey_write(k : SKD, sep : char, f : &mut fmt::Formatter) {
 macro_rules! visible_slotmap_key {
   ( $x:ident($sep:expr) ) => {
 
-    #[derive(Copy,Clone,Eq,PartialEq,Ord,PartialOrd,Serialize,Deserialize)]
+    #[derive(Copy,Default,Clone,Eq,PartialEq,Ord,PartialOrd,Serialize,Deserialize)]
     #[serde(into="String")]
     #[serde(try_from="&str")]
     pub struct $x(pub slotmap::KeyData);