diff options
| author | Linus Färnstrand <linus@mullvad.net> | 2017-02-28 18:32:09 +0100 |
|---|---|---|
| committer | Linus Färnstrand <linus@mullvad.net> | 2017-03-02 14:41:18 +0100 |
| commit | 0264d28adee81f279934f243da9e4774caed4e9e (patch) | |
| tree | ac7af2ef7c62fbaf5eb447ac515c6c5ddf4267f1 /talpid_openvpn_plugin | |
| parent | 1e546d46fba261a3e3b6c4ea43f4a7e16aa64c5b (diff) | |
| download | mullvadvpn-0264d28adee81f279934f243da9e4774caed4e9e.tar.xz mullvadvpn-0264d28adee81f279934f243da9e4774caed4e9e.zip | |
Add number to enum parsing error
Diffstat (limited to 'talpid_openvpn_plugin')
| -rw-r--r-- | talpid_openvpn_plugin/src/ffi/consts.rs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/talpid_openvpn_plugin/src/ffi/consts.rs b/talpid_openvpn_plugin/src/ffi/consts.rs index 34f6f6c44b..18473dbc07 100644 --- a/talpid_openvpn_plugin/src/ffi/consts.rs +++ b/talpid_openvpn_plugin/src/ffi/consts.rs @@ -5,8 +5,9 @@ use std::os::raw::c_int; error_chain!{ errors { - InvalidEnumVariant { + InvalidEnumVariant(i: c_int) { description("Integer does not match any enum variant") + display("{} is not a valid OPENVPN_PLUGIN_* constant", i) } } } @@ -34,7 +35,7 @@ impl OpenVpnPluginEvent { if i >= OpenVpnPluginEvent::Up as c_int && i <= OpenVpnPluginEvent::N as c_int { Ok(unsafe { ::std::mem::transmute_copy::<c_int, OpenVpnPluginEvent>(&i) }) } else { - Err(ErrorKind::InvalidEnumVariant.into()) + Err(ErrorKind::InvalidEnumVariant(i).into()) } } } @@ -76,13 +77,13 @@ mod tests { #[test] fn from_int_negative() { let result = OpenVpnPluginEvent::from_int(-5); - assert_matches!(result, Err(Error(ErrorKind::InvalidEnumVariant, _))); + assert_matches!(result, Err(Error(ErrorKind::InvalidEnumVariant(-5), _))); } #[test] fn from_int_invalid() { let result = OpenVpnPluginEvent::from_int(14); - assert_matches!(result, Err(Error(ErrorKind::InvalidEnumVariant, _))); + assert_matches!(result, Err(Error(ErrorKind::InvalidEnumVariant(14), _))); } #[test] |
