1use crate::sys;
6
7#[derive(Copy, Clone, Ord, PartialOrd, Eq, PartialEq, Hash)]
13#[repr(transparent)]
14pub struct ObjectType(sys::zx_obj_type_t);
15
16assoc_values!(ObjectType, [
17 NONE = sys::ZX_OBJ_TYPE_NONE;
18 PROCESS = sys::ZX_OBJ_TYPE_PROCESS;
19 THREAD = sys::ZX_OBJ_TYPE_THREAD;
20 VMO = sys::ZX_OBJ_TYPE_VMO;
21 CHANNEL = sys::ZX_OBJ_TYPE_CHANNEL;
22 EVENT = sys::ZX_OBJ_TYPE_EVENT;
23 PORT = sys::ZX_OBJ_TYPE_PORT;
24 INTERRUPT = sys::ZX_OBJ_TYPE_INTERRUPT;
25 PCI_DEVICE = sys::ZX_OBJ_TYPE_PCI_DEVICE;
26 DEBUGLOG = sys::ZX_OBJ_TYPE_DEBUGLOG;
27 SOCKET = sys::ZX_OBJ_TYPE_SOCKET;
28 RESOURCE = sys::ZX_OBJ_TYPE_RESOURCE;
29 EVENTPAIR = sys::ZX_OBJ_TYPE_EVENTPAIR;
30 JOB = sys::ZX_OBJ_TYPE_JOB;
31 VMAR = sys::ZX_OBJ_TYPE_VMAR;
32 FIFO = sys::ZX_OBJ_TYPE_FIFO;
33 GUEST = sys::ZX_OBJ_TYPE_GUEST;
34 VCPU = sys::ZX_OBJ_TYPE_VCPU;
35 TIMER = sys::ZX_OBJ_TYPE_TIMER;
36 IOMMU = sys::ZX_OBJ_TYPE_IOMMU;
37 BTI = sys::ZX_OBJ_TYPE_BTI;
38 PROFILE = sys::ZX_OBJ_TYPE_PROFILE;
39 PMT = sys::ZX_OBJ_TYPE_PMT;
40 SUSPEND_TOKEN = sys::ZX_OBJ_TYPE_SUSPEND_TOKEN;
41 PAGER = sys::ZX_OBJ_TYPE_PAGER;
42 EXCEPTION = sys::ZX_OBJ_TYPE_EXCEPTION;
43 CLOCK = sys::ZX_OBJ_TYPE_CLOCK;
44 STREAM = sys::ZX_OBJ_TYPE_STREAM;
45 MSI = sys::ZX_OBJ_TYPE_MSI;
46 IOB = sys::ZX_OBJ_TYPE_IOB;
47 COUNTER = sys::ZX_OBJ_TYPE_COUNTER;
48]);
49
50impl ObjectType {
51 pub const fn from_raw(raw: sys::zx_obj_type_t) -> Self {
53 Self(raw)
54 }
55
56 pub const fn into_raw(self) -> sys::zx_obj_type_t {
58 self.0
59 }
60}