summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorLinus Färnstrand <linus@mullvad.net>2018-10-01 18:01:04 +0200
committerLinus Färnstrand <linus@mullvad.net>2018-10-01 18:04:08 +0200
commit9bc519285d600eb730f20c946427f8ffafacd8ad (patch)
tree0ca15ec120e6d506cc31d82d7cffa453b1e871d3
parent63637a094a032a5641d150e83d6831e47cdf1a5b (diff)
downloadmullvadvpn-9bc519285d600eb730f20c946427f8ffafacd8ad.tar.xz
mullvadvpn-9bc519285d600eb730f20c946427f8ffafacd8ad.zip
Generate TunnelStateWrapper::handle_event in macro
-rw-r--r--talpid-core/src/tunnel_state_machine/mod.rs44
1 files changed, 15 insertions, 29 deletions
diff --git a/talpid-core/src/tunnel_state_machine/mod.rs b/talpid-core/src/tunnel_state_machine/mod.rs
index f37a035ce0..3338d3c4cc 100644
--- a/talpid-core/src/tunnel_state_machine/mod.rs
+++ b/talpid-core/src/tunnel_state_machine/mod.rs
@@ -294,6 +294,21 @@ macro_rules! state_wrapper {
$wrapper_name::$state_variant(state)
}
})*
+
+ impl $wrapper_name {
+ fn handle_event(
+ self,
+ commands: &mut mpsc::UnboundedReceiver<TunnelCommand>,
+ shared_values: &mut SharedTunnelStateValues,
+ ) -> TunnelStateMachineAction {
+ match self {
+ $($wrapper_name::$state_variant(state) => {
+ let event_consequence = state.handle_event(commands, shared_values);
+ TunnelStateMachineAction::from(event_consequence)
+ })*
+ }
+ }
+ }
}
}
@@ -306,32 +321,3 @@ state_wrapper! {
Blocked(BlockedState),
}
}
-
-impl TunnelStateWrapper {
- fn handle_event(
- self,
- commands: &mut mpsc::UnboundedReceiver<TunnelCommand>,
- shared_values: &mut SharedTunnelStateValues,
- ) -> TunnelStateMachineAction {
- macro_rules! handle_event {
- ( $($state:ident),* $(,)* ) => {
- match self {
- $(
- TunnelStateWrapper::$state(state) => {
- let event_consequence = state.handle_event(commands, shared_values);
- TunnelStateMachineAction::from(event_consequence)
- }
- )*
- }
- }
- }
-
- handle_event! {
- Disconnected,
- Connecting,
- Connected,
- Disconnecting,
- Blocked,
- }
- }
-}