diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-11-20 20:43:45 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-11-22 15:16:53 +0000 |
| commit | 7dd0c7a3920f290e3a564e2e005618dfd5a44af3 (patch) | |
| tree | 0fa61f1c3e75269d4b81ffa0921430d87b3fd859 | |
| parent | b6aebf0ee007f2de15cf09abbc1fc9d098094a30 (diff) | |
| download | mullvadvpn-7dd0c7a3920f290e3a564e2e005618dfd5a44af3.tar.xz mullvadvpn-7dd0c7a3920f290e3a564e2e005618dfd5a44af3.zip | |
Add `wrap_jnix_into_java` helper macro
| -rw-r--r-- | mullvad-jni/src/into_java.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/mullvad-jni/src/into_java.rs b/mullvad-jni/src/into_java.rs index 42cec028d9..6159321946 100644 --- a/mullvad-jni/src/into_java.rs +++ b/mullvad-jni/src/into_java.rs @@ -35,6 +35,22 @@ pub trait IntoJava<'borrow, 'env: 'borrow> { fn into_java(self, env: &'borrow JnixEnv<'env>) -> Self::JavaType; } +macro_rules! wrap_jnix_into_java { + ( $type:ty $( where $param:ident : $( $constraints:tt )* )* ) => { + impl<'borrow, 'env, $( $param ),* > IntoJava<'borrow, 'env> for $type + where + 'env: 'borrow, + $( $param: $( $constraints )* ),* + { + type JavaType = <$type as jnix::IntoJava<'borrow, 'env>>::JavaType; + + fn into_java(self, env: &'borrow JnixEnv<'env>) -> Self::JavaType { + jnix::IntoJava::into_java(self, env) + } + } + }; +} + impl<'borrow, 'env, T> IntoJava<'borrow, 'env> for Option<T> where 'env: 'borrow, |
