jvmti_rs/wrapper/objects/
jthread_group_id.rs1use std::marker::PhantomData;
2
3use crate::sys::{jthreadGroup};
4
5#[repr(transparent)]
6#[derive(Clone, Copy, Debug)]
7pub struct JThreadGroupID<'a> {
8 internal: jthreadGroup,
9 lifetime: PhantomData<&'a ()>,
10}
11
12impl<'a> From<jthreadGroup> for JThreadGroupID<'a> {
13 fn from(other: jthreadGroup) -> Self {
14 JThreadGroupID {
15 internal: other,
16 lifetime: PhantomData,
17 }
18 }
19}
20
21impl<'a> From<JThreadGroupID<'a>> for jthreadGroup {
22 fn from(value: JThreadGroupID<'a>) -> Self {
23 value.internal
24 }
25}
26
27impl<'a> From<&JThreadGroupID<'a>> for jthreadGroup {
28 fn from(value: &JThreadGroupID<'a>) -> Self {
29 value.internal
30 }
31}
32
33impl<'a> ::std::ops::Deref for JThreadGroupID<'a> {
34 type Target = jthreadGroup;
35
36 fn deref(&self) -> &Self::Target {
37 &self.internal
38 }
39}
40
41impl<'a> JThreadGroupID<'a> {
42 pub fn null() -> JThreadGroupID<'a> {
44 (::std::ptr::null_mut() as jthreadGroup).into()
45 }
46}