summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-21 18:53:46 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-22 19:55:46 +0000
commita5584c2fc2d98f6c71fde2a328445e0e99a602be (patch)
tree08e00db1e68fbf9a8b87b83c7cc35e18151569ef
parent31f5d7dbc72b753be0cbf4c3d14d30a56214da15 (diff)
downloadmullvadvpn-a5584c2fc2d98f6c71fde2a328445e0e99a602be.tar.xz
mullvadvpn-a5584c2fc2d98f6c71fde2a328445e0e99a602be.zip
Implement `IntoJava` for `Option<T>`
-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>;