summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--mullvad-jni/src/into_java.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/mullvad-jni/src/into_java.rs b/mullvad-jni/src/into_java.rs
index 952338ccb7..dce4d3e5ff 100644
--- a/mullvad-jni/src/into_java.rs
+++ b/mullvad-jni/src/into_java.rs
@@ -11,6 +11,21 @@ pub trait IntoJava<'env> {
fn into_java(self, env: &JNIEnv<'env>) -> Self::JavaType;
}
+impl<'env, T> IntoJava<'env> for Option<T>
+where
+ T: IntoJava<'env>,
+ T::JavaType: From<JObject<'env>>,
+{
+ type JavaType = T::JavaType;
+
+ fn into_java(self, env: &JNIEnv<'env>) -> Self::JavaType {
+ match self {
+ Some(data) => data.into_java(env),
+ None => T::JavaType::from(JObject::null()),
+ }
+ }
+}
+
impl<'env> IntoJava<'env> for String {
type JavaType = JString<'env>;