diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-05-21 16:02:13 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-05-22 16:41:56 +0000 |
| commit | 5d69b6e1b9f84aae615cef3ab77f54bb385207e3 (patch) | |
| tree | 92ed7f845ebeb10ecd49a899c815260e81ae1605 | |
| parent | 1d9a3f9c6a3bc536de0a92654d87f982ef2bb219 (diff) | |
| download | mullvadvpn-5d69b6e1b9f84aae615cef3ab77f54bb385207e3.tar.xz mullvadvpn-5d69b6e1b9f84aae615cef3ab77f54bb385207e3.zip | |
Create `FromJava` helper trait
| -rw-r--r-- | mullvad-jni/src/from_java.rs | 18 | ||||
| -rw-r--r-- | mullvad-jni/src/lib.rs | 1 |
2 files changed, 19 insertions, 0 deletions
diff --git a/mullvad-jni/src/from_java.rs b/mullvad-jni/src/from_java.rs new file mode 100644 index 0000000000..526a83e1fb --- /dev/null +++ b/mullvad-jni/src/from_java.rs @@ -0,0 +1,18 @@ +use jni::{objects::JString, JNIEnv}; + +pub trait FromJava<'env> { + type JavaType: 'env; + + fn from_java(env: &JNIEnv<'env>, source: Self::JavaType) -> Self; +} + +impl<'env> FromJava<'env> for String { + type JavaType = JString<'env>; + + fn from_java(env: &JNIEnv<'env>, source: Self::JavaType) -> Self { + String::from( + env.get_string(source) + .expect("Failed to convert from Java String"), + ) + } +} diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs index ce6d953fcd..647d07b0e3 100644 --- a/mullvad-jni/src/lib.rs +++ b/mullvad-jni/src/lib.rs @@ -1,6 +1,7 @@ #![cfg(target_os = "android")] mod daemon_interface; +mod from_java; use crate::daemon_interface::DaemonInterface; use jni::{objects::JObject, JNIEnv}; |
