diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-03-26 11:58:41 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-05-23 10:30:24 +0000 |
| commit | 669bcacd7a590fbfb13dc9eafe443d86895b567f (patch) | |
| tree | a9b44e3fb62c9d4b4645f5bf476a47eb245c2859 | |
| parent | bb98e78266f2ad9c4900c94ef3fc274c847b469c (diff) | |
| download | mullvadvpn-669bcacd7a590fbfb13dc9eafe443d86895b567f.tar.xz mullvadvpn-669bcacd7a590fbfb13dc9eafe443d86895b567f.zip | |
Create `IsNull` helper trait
| -rw-r--r-- | mullvad-jni/src/from_java.rs | 6 | ||||
| -rw-r--r-- | mullvad-jni/src/is_null.rs | 18 | ||||
| -rw-r--r-- | mullvad-jni/src/lib.rs | 1 |
3 files changed, 22 insertions, 3 deletions
diff --git a/mullvad-jni/src/from_java.rs b/mullvad-jni/src/from_java.rs index 186079ca77..8ef615242e 100644 --- a/mullvad-jni/src/from_java.rs +++ b/mullvad-jni/src/from_java.rs @@ -1,10 +1,10 @@ -use crate::get_class; +use crate::{get_class, is_null::IsNull}; use jni::{ objects::{JObject, JString}, JNIEnv, }; use mullvad_types::relay_constraints::{Constraint, LocationConstraint}; -use std::{fmt::Debug, ops::Deref}; +use std::fmt::Debug; pub trait FromJava<'env> { type JavaType: 'env; @@ -15,7 +15,7 @@ pub trait FromJava<'env> { impl<'env, T> FromJava<'env> for Option<T> where T: FromJava<'env>, - T::JavaType: Deref<Target = JObject<'env>>, + T::JavaType: IsNull, { type JavaType = T::JavaType; diff --git a/mullvad-jni/src/is_null.rs b/mullvad-jni/src/is_null.rs new file mode 100644 index 0000000000..628fc4c81a --- /dev/null +++ b/mullvad-jni/src/is_null.rs @@ -0,0 +1,18 @@ +use jni::objects::{JObject, JString}; +use std::ops::Deref; + +pub trait IsNull { + fn is_null(&self) -> bool; +} + +impl<'a> IsNull for JObject<'a> { + fn is_null(&self) -> bool { + self.deref().is_null() + } +} + +impl<'a> IsNull for JString<'a> { + fn is_null(&self) -> bool { + self.deref().is_null() + } +} diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs index 91a83f09cd..0b512a750c 100644 --- a/mullvad-jni/src/lib.rs +++ b/mullvad-jni/src/lib.rs @@ -3,6 +3,7 @@ mod daemon_interface; mod from_java; mod into_java; +mod is_null; use crate::{daemon_interface::DaemonInterface, from_java::FromJava, into_java::IntoJava}; use jni::{ |
