}
}
- fn unpack<P:Perm>(packed: PermSet<P>) -> HashSet<P> {
+ fn unpack<P:Perm>(packed: &PermSet<P>) -> HashSet<P> {
let mut s = HashSet::new();
for n in 0.. {
let v = match FromPrimitive::from_u64(n) { Some(v) => v, None => break };
impl<P:Perm> From<Acl<P>> for LoadedAcl<P> {
fn from(acl: Acl<P>) -> LoadedAcl<P> {
+ (&acl).into()
+ }
+ }
+
+ impl<P:Perm> From<&Acl<P>> for LoadedAcl<P> {
+ fn from(acl: &Acl<P>) -> LoadedAcl<P> {
let ents = acl.ents.into_iter().filter_map(
|AclEntry { account_glob, allow, deny }|
{
impl<P:Perm> From<LoadedAcl<P>> for Acl<P> {
fn from(acl: LoadedAcl<P>) -> Acl<P> {
+ (&acl).into()
+ }
+ }
+
+ impl<P:Perm> From<&LoadedAcl<P>> for Acl<P> {
+ fn from(acl: &LoadedAcl<P>) -> Acl<P> {
let LoadedAcl(ents) = acl;
Acl { ents: ents.into_iter().map(
|LoadedAclEntry { pat, allow, deny, .. }|
|(player, PlayerRecord { ipl, .. })|
(player, ipl.clone())
).collect();
- let acl = s.c.g.acl.into();
+ let acl = (&s.c.g.acl).into();
let isa = InstanceSaveAccesses {
ipieces, tokens_players, aplayers, acl
};
let g = Instance {
gs, iplayers,
- acl: acl.into(),
+ acl: (&acl).into(),
ipieces: PiecesLoaded(ipieces),
name: name.clone(),
clients : Default::default(),