[−][src]Struct jni_glue::Local
A Local, non-null, reference to a Java object (+ &Env) limited to the current thread/stack.
Including the env allows for the convenient execution of methods without having to individually pass the env as an argument to each and every one. Since this is limited to the current thread/stack, these cannot be sanely stored in any kind of static storage, nor shared between threads - instead use a Global if you need to do either.
Will DeleteLocalRef when dropped, invalidating the jobject but ensuring threads that rarely or never return to Java may run without being guaranteed to eventually exhaust their local reference limit. If this is not desired, convert to a plain Ref with:
let local = Local::leak(local);
Not FFI Safe: #[repr(rust)], and exact layout is likely to change - depending on exact features used - in the future. Specifically, on Android, since we're guaranteed to only have a single ambient VM, we can likely store the *const JNIEnv in thread local storage instead of lugging it around in every Local. Of course, there's no guarantee that's actually an optimization...
Methods
impl<'env, Class: AsValidJObjectAndEnv> Local<'env, Class>
[src]
pub unsafe fn from_env_object(env: *const JNIEnv, object: jobject) -> Self
[src]
pub fn leak(local: Self) -> Ref<'env, Class>
[src]
Trait Implementations
impl<'env, Class: AsValidJObjectAndEnv + Debug> Debug for Local<'env, Class>
[src]
impl<'env, Class: AsValidJObjectAndEnv> Deref for Local<'env, Class>
[src]
impl<'env, Class: AsValidJObjectAndEnv + Display> Display for Local<'env, Class>
[src]
impl<'env, Class: AsValidJObjectAndEnv> Drop for Local<'env, Class>
[src]
impl<'env, Class: AsValidJObjectAndEnv> From<Local<'env, Class>> for Global<Class>
[src]
Auto Trait Implementations
impl<'env, Class> RefUnwindSafe for Local<'env, Class> where
Class: RefUnwindSafe,
Class: RefUnwindSafe,
impl<'env, Class> !Send for Local<'env, Class>
impl<'env, Class> !Sync for Local<'env, Class>
impl<'env, Class> Unpin for Local<'env, Class>
impl<'env, Class> UnwindSafe for Local<'env, Class> where
Class: RefUnwindSafe,
Class: RefUnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,