summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-03-26 11:58:41 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-23 10:30:24 +0000
commit669bcacd7a590fbfb13dc9eafe443d86895b567f (patch)
treea9b44e3fb62c9d4b4645f5bf476a47eb245c2859
parentbb98e78266f2ad9c4900c94ef3fc274c847b469c (diff)
downloadmullvadvpn-669bcacd7a590fbfb13dc9eafe443d86895b567f.tar.xz
mullvadvpn-669bcacd7a590fbfb13dc9eafe443d86895b567f.zip
Create `IsNull` helper trait
-rw-r--r--mullvad-jni/src/from_java.rs6
-rw-r--r--mullvad-jni/src/is_null.rs18
-rw-r--r--mullvad-jni/src/lib.rs1
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::{