summaryrefslogtreecommitdiffstats
path: root/core/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/lib.rs')
-rw-r--r--core/src/lib.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/core/src/lib.rs b/core/src/lib.rs
index 1451bcc3..78242206 100644
--- a/core/src/lib.rs
+++ b/core/src/lib.rs
@@ -258,6 +258,31 @@ impl NetworkPolicy {
}
}
+impl<'a> From<&'a NetworkPolicy> for u8 {
+ fn from(policy: &NetworkPolicy) -> Self {
+ match policy {
+ &NetworkPolicy::Offline => 0,
+ &NetworkPolicy::Anonymized => 1,
+ &NetworkPolicy::Encrypted => 2,
+ &NetworkPolicy::Insecure => 3,
+ }
+ }
+}
+
+
+// XXX: TryFrom would be nice.
+impl From<u8> for NetworkPolicy {
+ fn from(policy: u8) -> Self {
+ match policy {
+ 0 => NetworkPolicy::Offline,
+ 1 => NetworkPolicy::Anonymized,
+ 2 => NetworkPolicy::Encrypted,
+ 3 => NetworkPolicy::Insecure,
+ n => panic!("Bad policy: {}", n),
+ }
+ }
+}
+
#[macro_export]
macro_rules! assert_match {
( $error: pat = $expr:expr ) => {