From: Ian Jackson Date: Sun, 28 Jun 2020 20:11:14 +0000 (+0100) Subject: wip X-Git-Tag: otter-0.2.0~1503 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=ea3a79961261a60c1f809c861b931a9d30dc46a2;p=otter.git wip --- diff --git a/src/bin/server.rs b/src/bin/server.rs index efd28464..83b322b3 100644 --- a/src/bin/server.rs +++ b/src/bin/server.rs @@ -231,10 +231,9 @@ struct APIForm { #[get("/_/updates//")] #[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; diff --git a/src/global.rs b/src/global.rs index 57de86d6..357eb2ec 100644 --- a/src/global.rs +++ b/src/global.rs @@ -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)] diff --git a/src/keydata.rs b/src/keydata.rs index 2b8799b7..78563de3 100644 --- a/src/keydata.rs +++ b/src/keydata.rs @@ -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);