diff --git a/wg-event-gen/Cargo.toml b/wg-event-gen/Cargo.toml index 2987d09..4131970 100644 --- a/wg-event-gen/Cargo.toml +++ b/wg-event-gen/Cargo.toml @@ -12,4 +12,8 @@ structopt = "0.2.14" structopt-derive = "0.2.14" [profile.release] -lto = false +lto = true + +[features] + +addrem = [] diff --git a/wg-event-gen/src/gen.rs b/wg-event-gen/src/gen.rs index 7b0a9d4..7103278 100644 --- a/wg-event-gen/src/gen.rs +++ b/wg-event-gen/src/gen.rs @@ -25,7 +25,7 @@ pub(crate) fn gen_events( .chain(prev.keys().map(String::as_ref)) .collect::>() .iter() - .map(|p| (p.to_owned(), (prev.get(*p), state.get(*p)))) + .map(|p| (*p, (prev.get(*p), state.get(*p)))) .collect::, Option<&Peer>)>>() }; for (_id, (prev, cur)) in side_by_side { @@ -37,6 +37,12 @@ pub(crate) fn gen_events( _ => true, }; + if let (Some(prev_addr), Some(cur_addr)) = (prev.endpoint, cur.endpoint) { + if prev_addr != cur_addr { + listeners.roaming(&cur, prev_addr); + } + } + if !timedout(&prev) && timedout(&cur) { listeners.disconnected(&cur); continue; @@ -45,12 +51,6 @@ pub(crate) fn gen_events( if timedout(&prev) && !timedout(&cur) { listeners.connected(&cur); } - - if prev.endpoint != cur.endpoint { - if let (Some(prev_addr), Some(_)) = (prev.endpoint, cur.endpoint) { - listeners.roaming(&cur, prev_addr); - } - } } (None, Some(cur)) => listeners.added(&cur), (Some(prev), None) => listeners.removed(&prev),