mirror of
https://github.com/hexedtech/jni-toolbox.git
synced 2024-11-22 07:24:53 +01:00
feat: builtin conversions for &str as well
This commit is contained in:
parent
78b57d6e58
commit
006d76eea9
3 changed files with 8 additions and 9 deletions
|
@ -8,7 +8,6 @@ pub(crate) struct AttrsOptions {
|
|||
}
|
||||
|
||||
impl AttrsOptions {
|
||||
|
||||
pub(crate) fn parse_attr(attrs: TokenStream) -> Result<Self, syn::Error> {
|
||||
let mut what_next = WhatNext::Nothing;
|
||||
|
||||
|
|
|
@ -3,7 +3,6 @@ mod wrapper;
|
|||
mod args;
|
||||
mod ret;
|
||||
|
||||
|
||||
/// wrap this function in in a JNI exported fn
|
||||
#[proc_macro_attribute]
|
||||
pub fn jni(
|
||||
|
|
15
src/lib.rs
15
src/lib.rs
|
@ -23,7 +23,6 @@ pub fn from_java_static<'j, T: FromJava<'j>>(env: &mut jni::JNIEnv<'j>, val: T::
|
|||
|
||||
pub trait FromJava<'j> : Sized {
|
||||
type T : Sized;
|
||||
|
||||
fn from_java(env: &mut jni::JNIEnv<'j>, value: Self::T) -> Result<Self, jni::errors::Error>;
|
||||
}
|
||||
|
||||
|
@ -73,9 +72,6 @@ impl<'j, T: FromJava<'j, T = jni::objects::JObject<'j>>> FromJava<'j> for Option
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
pub trait IntoJava<'j> {
|
||||
type T;
|
||||
|
||||
|
@ -110,14 +106,20 @@ impl<'j> IntoJava<'j> for bool {
|
|||
}
|
||||
}
|
||||
|
||||
impl<'j> IntoJava<'j> for String {
|
||||
impl<'j> IntoJava<'j> for &str {
|
||||
type T = jni::sys::jstring;
|
||||
|
||||
fn into_java(self, env: &mut jni::JNIEnv<'j>) -> Result<Self::T, jni::errors::Error> {
|
||||
Ok(env.new_string(self)?.as_raw())
|
||||
}
|
||||
}
|
||||
|
||||
impl<'j> IntoJava<'j> for String {
|
||||
type T = jni::sys::jstring;
|
||||
fn into_java(self, env: &mut jni::JNIEnv<'j>) -> Result<Self::T, jni::errors::Error> {
|
||||
self.as_str().into_java(env)
|
||||
}
|
||||
}
|
||||
|
||||
impl<'j> IntoJava<'j> for Vec<String> {
|
||||
type T = jni::sys::jobjectArray;
|
||||
|
||||
|
@ -139,5 +141,4 @@ impl<'j, T: IntoJava<'j, T = jni::sys::jobject>> IntoJava<'j> for Option<T> {
|
|||
None => Ok(std::ptr::null_mut()),
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue