zcash-android-wallet-sdk/src/main/rust/lib.rs

43 lines
1.1 KiB
Rust
Raw Normal View History

use std::os::raw::{c_char, c_int};
/// For now, this just returns a magic number
#[no_mangle]
2018-11-20 23:04:06 -08:00
pub extern "C" fn test_response(_input: *const c_char) -> c_int {
let magic_number = 42;
magic_number
}
/// JNI interface
2018-11-21 05:51:37 -08:00
#[cfg(target_os = "android")]
#[allow(non_snake_case)]
pub mod android {
extern crate jni;
use self::jni::objects::{JClass, JString};
use self::jni::sys::*;
2018-11-21 05:51:37 -08:00
use self::jni::JNIEnv;
use super::*;
#[no_mangle]
2018-11-21 05:51:37 -08:00
pub unsafe extern "C" fn Java_cash_z_wallet_sdk_jni_JniConverter_getMagicInt(
env: JNIEnv,
_: JClass,
test_input: JString,
) -> jint {
let jvm_text = env
.get_string(test_input)
.expect("unable to find text for test input");
test_response(jvm_text.as_ptr())
}
#[no_mangle]
2018-11-21 05:51:37 -08:00
pub unsafe extern "C" fn Java_cash_z_wallet_sdk_jni_JniConverter_sendComplexData(
env: JNIEnv,
_: JClass,
wallet_data: jbyteArray,
) -> jint {
let bytes = env.convert_byte_array(wallet_data);
bytes.unwrap().len() as i32
}
}