#[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;
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)]
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);