}
).collect::<Result<SecondarySlotMap<_,_>,ME>>()?;
let table_size = ig.gs.table_size;
- let info = MgmtGameResponseGameInfo { table_size, players };
+ let links = ig.links.iter().filter_map(
+ |(k,v)|
+ Some((k.clone(), v.as_ref()?.clone().0))
+ ).collect();
+ let info = MgmtGameResponseGameInfo { table_size, players, links };
Ok(Resp::Info(info))
})?,
nick : gpl.nick.clone(),
sse_url_prefix,
ptoken: form.ptoken.clone(),
- links: ig.links.iter().map(|(k,v)| (k.clone(), v.clone())).collect(),
+ links: ig.links.iter()
+ .filter_map(|(k,v)| Some((k.clone(), v.clone()?))).collect(),
load : serde_json::to_string(&DataLoad {
players: load_players,
last_log_ts: timestamp_abbrev.unwrap_or_default(),
let mut insns = vec![];
insns.push(MGI::ClearLog);
insns.push(MGI::SetACL { acl });
+ insns.push(MGI::SetLinks(links.clone()));
insns
}
},
Some(url) => {
+ let kind = args.kind.unwrap();
chan.alter_game(vec![
if url == "" {
- MGI::SetLink { kind: args.kind, url }
+ MGI::SetLink { kind, url }
} else {
- MGI::RemoveLink { kind: args.kind }
+ MGI::RemoveLink { kind }
}
- ])?;
+ ], None)?;
},
}
}