jvmti_rs/wrapper/enums/
version_mask.rs

1use crate::sys;
2
3#[derive(Debug)]
4pub enum JvmtiVersionMask {
5    InterfaceType,
6    Major,
7    Minor,
8    Micro,
9    Unsupported(sys::jvmtiVersionMask),
10}
11
12
13impl From<sys::jvmtiVersionMask> for JvmtiVersionMask {
14    fn from(value: sys::jvmtiVersionMask) -> Self {
15        match value {
16            sys::JVMTI_VERSION_MASK_INTERFACE_TYPE => JvmtiVersionMask::InterfaceType,
17            sys::JVMTI_VERSION_MASK_MAJOR => JvmtiVersionMask::Major,
18            sys::JVMTI_VERSION_MASK_MINOR => JvmtiVersionMask::Minor,
19            sys::JVMTI_VERSION_MASK_MICRO => JvmtiVersionMask::Micro,
20            _ => JvmtiVersionMask::Unsupported(value)
21        }
22    }
23}
24
25impl From<JvmtiVersionMask> for sys::jvmtiVersionMask {
26    fn from(value: JvmtiVersionMask) -> Self {
27        match value {
28            JvmtiVersionMask::InterfaceType => sys::JVMTI_VERSION_MASK_INTERFACE_TYPE,
29            JvmtiVersionMask::Major => sys::JVMTI_VERSION_MASK_MAJOR,
30            JvmtiVersionMask::Minor => sys::JVMTI_VERSION_MASK_MINOR,
31            JvmtiVersionMask::Micro => sys::JVMTI_VERSION_MASK_MICRO,
32            _ => sys::JVMTI_CONSTANT_UNSUPPORTED,
33        }
34    }
35}