1 use crate::sys::{
2     JNI_VERSION_1_1, JNI_VERSION_1_2, JNI_VERSION_1_4, JNI_VERSION_1_6, JNI_VERSION_1_8,
3 };
4 
5 /// JNI Version
6 ///
7 /// This maps to the `jni_sys::JNI_VERSION_1_*` constants.
8 #[derive(Debug, Copy, Clone)]
9 #[allow(missing_docs)]
10 pub enum JNIVersion {
11     V1,
12     V2,
13     V4,
14     V6,
15     V8,
16     Invalid(i32),
17 }
18 
19 impl From<i32> for JNIVersion {
from(other: i32) -> Self20     fn from(other: i32) -> Self {
21         match other {
22             JNI_VERSION_1_1 => JNIVersion::V1,
23             JNI_VERSION_1_2 => JNIVersion::V2,
24             JNI_VERSION_1_4 => JNIVersion::V4,
25             JNI_VERSION_1_6 => JNIVersion::V6,
26             JNI_VERSION_1_8 => JNIVersion::V8,
27             v => JNIVersion::Invalid(v),
28         }
29     }
30 }
31 
32 impl From<JNIVersion> for i32 {
from(other: JNIVersion) -> Self33     fn from(other: JNIVersion) -> Self {
34         match other {
35             JNIVersion::V1 => JNI_VERSION_1_1,
36             JNIVersion::V2 => JNI_VERSION_1_2,
37             JNIVersion::V4 => JNI_VERSION_1_4,
38             JNIVersion::V6 => JNI_VERSION_1_6,
39             JNIVersion::V8 => JNI_VERSION_1_8,
40             JNIVersion::Invalid(v) => v,
41         }
42     }
43 }
44