android-rust-cli 0.3.2

A CLI tool for generating Android Rust JNI templates in a single command
use jni::objects::{JClass, JString};
use jni::sys::{jint, jlong, jstring};
use jni::errors::ThrowRuntimeExAndDefault;
use jni::EnvUnowned;
use rustcore::{fibonacci, rust_greeting};

#[unsafe(no_mangle)]
pub extern "system" fn Java_{{ jni_package }}_RustBridge_rustGreeting<'caller>(
    mut unowned_env: EnvUnowned<'caller>,
    _class: JClass<'caller>,
    name: JString<'caller>,
) -> jstring {
    unowned_env.with_env(|env| -> jni::errors::Result<_> {
        let name: String = name.to_string(env)?.into();
        let result = rust_greeting(&name);
        Ok(env.new_string(result)?.into_raw())
    }).resolve::<ThrowRuntimeExAndDefault>()
}

#[unsafe(no_mangle)]
pub extern "system" fn Java_{{ jni_package }}_RustBridge_fibonacci<'caller>(
    mut unowned_env: EnvUnowned<'caller>,
    _class: JClass<'caller>,
    n: jint,
) -> jlong {
    unowned_env.with_env(|_env| -> jni::errors::Result<_> {
        Ok(fibonacci(n as u32) as jlong)
    }).resolve::<ThrowRuntimeExAndDefault>()
}