diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-05-21 18:53:46 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-05-22 19:55:46 +0000 |
| commit | a5584c2fc2d98f6c71fde2a328445e0e99a602be (patch) | |
| tree | 08e00db1e68fbf9a8b87b83c7cc35e18151569ef | |
| parent | 31f5d7dbc72b753be0cbf4c3d14d30a56214da15 (diff) | |
| download | mullvadvpn-a5584c2fc2d98f6c71fde2a328445e0e99a602be.tar.xz mullvadvpn-a5584c2fc2d98f6c71fde2a328445e0e99a602be.zip | |
Implement `IntoJava` for `Option<T>`
| -rw-r--r-- | mullvad-jni/src/into_java.rs | 15 |
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>; |
