oo-bindgen 0.8.8

DSL-based binding geneator for C, C++, Java, and C#
Documentation
pub(crate) trait CreateObject {
    fn create_object<'a>(&self, env: &'a jni::JNIEnv) -> jni::objects::JObject<'a>;

    fn create_inner_object(&self, env: &jni::JNIEnv) -> jni::sys::jobject {
        self.create_object(env).into_inner()
    }
}

impl CreateObject for *const bool {
    fn create_object<'a>(&self, env: &'a jni::JNIEnv) -> jni::objects::JObject<'a> {
        unsafe {
            self
                .as_ref()
                .map(|x| crate::get_cache().primitives.boolean.create(env, *x))
                .unwrap_or_else(|| jni::objects::JObject::null())
        }
    }
}

impl CreateObject for *const i8 {
    fn create_object<'a>(&self, env: &'a jni::JNIEnv) -> jni::objects::JObject<'a> {
        unsafe {
            self
                .as_ref()
                .map(|x| crate::get_cache().primitives.byte.create(env, *x))
                .unwrap_or_else(|| jni::objects::JObject::null())
        }
    }
}

impl CreateObject for *const u8 {
    fn create_object<'a>(&self, env: &'a jni::JNIEnv) -> jni::objects::JObject<'a> {
        unsafe {
            self
                .as_ref()
                .map(|x| crate::get_cache().unsigned.byte.to_jni(env, *x).into())
                .unwrap_or_else(|| jni::objects::JObject::null())
        }
    }
}

impl CreateObject for *const i16 {
    fn create_object<'a>(&self, env: &'a jni::JNIEnv) -> jni::objects::JObject<'a> {
        unsafe {
            self
                .as_ref()
                .map(|x| crate::get_cache().primitives.short.create(env, *x))
                .unwrap_or_else(|| jni::objects::JObject::null())
        }
    }
}

impl CreateObject for *const u16 {
    fn create_object<'a>(&self, env: &'a jni::JNIEnv) -> jni::objects::JObject<'a> {
        unsafe {
            self
                .as_ref()
                .map(|x| crate::get_cache().unsigned.short.to_jni(env, *x).into())
                .unwrap_or_else(|| jni::objects::JObject::null())
        }
    }
}

impl CreateObject for *const i32 {
    fn create_object<'a>(&self, env: &'a jni::JNIEnv) -> jni::objects::JObject<'a> {
        unsafe {
            self
                .as_ref()
                .map(|x| crate::get_cache().primitives.integer.create(env, *x))
                .unwrap_or_else(|| jni::objects::JObject::null())
        }
    }
}

impl CreateObject for *const u32 {
    fn create_object<'a>(&self, env: &'a jni::JNIEnv) -> jni::objects::JObject<'a> {
        unsafe {
            self
                .as_ref()
                .map(|x| crate::get_cache().unsigned.integer.to_jni(env, *x).into())
                .unwrap_or_else(|| jni::objects::JObject::null())
        }
    }
}

impl CreateObject for *const i64 {
    fn create_object<'a>(&self, env: &'a jni::JNIEnv) -> jni::objects::JObject<'a> {
        unsafe {
            self
                .as_ref()
                .map(|x| crate::get_cache().primitives.long.create(env, *x))
                .unwrap_or_else(|| jni::objects::JObject::null())
        }
    }
}

impl CreateObject for *const u64 {
    fn create_object<'a>(&self, env: &'a jni::JNIEnv) -> jni::objects::JObject<'a> {
        unsafe {
            self
                .as_ref()
                .map(|x| crate::get_cache().unsigned.long.to_jni(env, *x).into())
                .unwrap_or_else(|| jni::objects::JObject::null())
        }
    }
}

impl CreateObject for *const f32 {
    fn create_object<'a>(&self, env: &'a jni::JNIEnv) -> jni::objects::JObject<'a> {
        unsafe {
            self
                .as_ref()
                .map(|x| crate::get_cache().primitives.float.create(env, *x))
                .unwrap_or_else(|| jni::objects::JObject::null())
        }
    }
}

impl CreateObject for *const f64 {
    fn create_object<'a>(&self, env: &'a jni::JNIEnv) -> jni::objects::JObject<'a> {
        unsafe {
            self
                .as_ref()
                .map(|x| crate::get_cache().primitives.double.create(env, *x))
                .unwrap_or_else(|| jni::objects::JObject::null())
        }
    }
}