1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use super::*;
pub unsafe trait JniType {
fn static_with_jni_type<R>(callback: impl FnOnce(&str) -> R) -> R;
}
unsafe impl JniType for () { fn static_with_jni_type<R>(callback: impl FnOnce(&str) -> R) -> R { callback("V\0") } }
unsafe impl JniType for bool { fn static_with_jni_type<R>(callback: impl FnOnce(&str) -> R) -> R { callback("Z\0") } }
unsafe impl JniType for jbyte { fn static_with_jni_type<R>(callback: impl FnOnce(&str) -> R) -> R { callback("B\0") } }
unsafe impl JniType for jchar { fn static_with_jni_type<R>(callback: impl FnOnce(&str) -> R) -> R { callback("C\0") } }
unsafe impl JniType for jshort { fn static_with_jni_type<R>(callback: impl FnOnce(&str) -> R) -> R { callback("S\0") } }
unsafe impl JniType for jint { fn static_with_jni_type<R>(callback: impl FnOnce(&str) -> R) -> R { callback("I\0") } }
unsafe impl JniType for jlong { fn static_with_jni_type<R>(callback: impl FnOnce(&str) -> R) -> R { callback("J\0") } }
unsafe impl JniType for jfloat { fn static_with_jni_type<R>(callback: impl FnOnce(&str) -> R) -> R { callback("F\0") } }
unsafe impl JniType for jdouble { fn static_with_jni_type<R>(callback: impl FnOnce(&str) -> R) -> R { callback("D\0") } }
unsafe impl JniType for &str { fn static_with_jni_type<R>(callback: impl FnOnce(&str) -> R) -> R { callback("Ljava/lang/String;\0") } }