jvmti_rs/wrapper/enums/
heap_root_kind.rs1use crate::sys;
2
3#[derive(Debug)]
4pub enum JvmtiHeapRootKind {
5 JniGlobal,
6 SystemClass,
7 Monitor,
8 StackLocal,
9 JniLocal,
10 Thread,
11 Other,
12 Unsupported(sys::jvmtiHeapRootKind),
13}
14
15
16impl From<sys::jvmtiHeapRootKind> for JvmtiHeapRootKind {
17 fn from(value: sys::jvmtiHeapRootKind) -> Self {
18 match value {
19 sys::JVMTI_HEAP_ROOT_JNI_GLOBAL => JvmtiHeapRootKind::JniGlobal,
20 sys::JVMTI_HEAP_ROOT_SYSTEM_CLASS => JvmtiHeapRootKind::SystemClass,
21 sys::JVMTI_HEAP_ROOT_MONITOR => JvmtiHeapRootKind::Monitor,
22 sys::JVMTI_HEAP_ROOT_STACK_LOCAL => JvmtiHeapRootKind::StackLocal,
23 sys::JVMTI_HEAP_ROOT_JNI_LOCAL => JvmtiHeapRootKind::JniLocal,
24 sys::JVMTI_HEAP_ROOT_THREAD => JvmtiHeapRootKind::Thread,
25 sys::JVMTI_HEAP_ROOT_OTHER => JvmtiHeapRootKind::Other,
26 _ => JvmtiHeapRootKind::Unsupported(value)
27 }
28 }
29}
30
31impl From<JvmtiHeapRootKind> for sys::jvmtiHeapRootKind {
32 fn from(value: JvmtiHeapRootKind) -> Self {
33 match value {
34 JvmtiHeapRootKind::JniGlobal => sys::JVMTI_HEAP_ROOT_JNI_GLOBAL,
35 JvmtiHeapRootKind::SystemClass => sys::JVMTI_HEAP_ROOT_SYSTEM_CLASS,
36 JvmtiHeapRootKind::Monitor => sys::JVMTI_HEAP_ROOT_MONITOR,
37 JvmtiHeapRootKind::StackLocal => sys::JVMTI_HEAP_ROOT_STACK_LOCAL,
38 JvmtiHeapRootKind::JniLocal => sys::JVMTI_HEAP_ROOT_JNI_LOCAL,
39 JvmtiHeapRootKind::Thread => sys::JVMTI_HEAP_ROOT_THREAD,
40 JvmtiHeapRootKind::Other => sys::JVMTI_HEAP_ROOT_OTHER,
41 _ => sys::JVMTI_CONSTANT_UNSUPPORTED,
42 }
43 }
44}