zerodds_types/type_object/
flags.rs1#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
10pub struct StructTypeFlag(pub u16);
11
12impl StructTypeFlag {
13 pub const IS_FINAL: u16 = 1 << 0;
15 pub const IS_APPENDABLE: u16 = 1 << 1;
17 pub const IS_MUTABLE: u16 = 1 << 2;
19 pub const IS_NESTED: u16 = 1 << 3;
21 pub const IS_AUTOID_HASH: u16 = 1 << 4;
23
24 #[must_use]
26 pub const fn empty() -> Self {
27 Self(0)
28 }
29
30 #[must_use]
32 pub const fn has(self, bit: u16) -> bool {
33 (self.0 & bit) != 0
34 }
35}
36
37#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
39pub struct StructMemberFlag(pub u16);
40
41impl StructMemberFlag {
42 pub const TRY_CONSTRUCT1: u16 = 1 << 0;
44 pub const TRY_CONSTRUCT2: u16 = 1 << 1;
46 pub const IS_EXTERNAL: u16 = 1 << 2;
48 pub const IS_OPTIONAL: u16 = 1 << 3;
50 pub const IS_MUST_UNDERSTAND: u16 = 1 << 4;
52 pub const IS_KEY: u16 = 1 << 5;
54 pub const IS_DEFAULT: u16 = 1 << 6;
56
57 #[must_use]
59 pub const fn empty() -> Self {
60 Self(0)
61 }
62
63 #[must_use]
65 pub const fn has(self, bit: u16) -> bool {
66 (self.0 & bit) != 0
67 }
68}
69
70#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
72pub struct UnionTypeFlag(pub u16);
73
74#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
76pub struct UnionMemberFlag(pub u16);
77
78impl UnionMemberFlag {
79 pub const TRY_CONSTRUCT1: u16 = 1 << 0;
83 pub const IS_DEFAULT: u16 = 1 << 6;
85 #[must_use]
87 pub const fn empty() -> Self {
88 Self(0)
89 }
90}
91
92#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
94pub struct UnionDiscriminatorFlag(pub u16);
95
96impl UnionDiscriminatorFlag {
97 pub const TRY_CONSTRUCT1: u16 = 1 << 0;
99 pub const IS_MUST_UNDERSTAND: u16 = 1 << 4;
102 #[must_use]
105 pub const fn discriminator_default() -> Self {
106 Self(Self::IS_MUST_UNDERSTAND | Self::TRY_CONSTRUCT1)
107 }
108}
109
110#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
112pub struct EnumTypeFlag(pub u16);
113
114impl EnumTypeFlag {
115 pub const IGNORE_LITERAL_NAMES: u16 = 1 << 0;
119
120 #[must_use]
122 pub const fn empty() -> Self {
123 Self(0)
124 }
125
126 #[must_use]
128 pub const fn has(self, bit: u16) -> bool {
129 (self.0 & bit) != 0
130 }
131}
132
133#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
135pub struct EnumLiteralFlag(pub u16);
136
137impl EnumLiteralFlag {
138 pub const IS_DEFAULT_LITERAL: u16 = 1 << 0;
140}
141
142#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
144pub struct BitmaskTypeFlag(pub u16);
145
146#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
148pub struct BitflagFlag(pub u16);
149
150#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
152pub struct CollectionTypeFlag(pub u16);
153
154#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
156pub struct CollectionElementFlag(pub u16);
157
158#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
160pub struct AliasTypeFlag(pub u16);
161
162#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
164pub struct AliasMemberFlag(pub u16);
165
166#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
168pub struct AnnotationTypeFlag(pub u16);
169
170#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
172pub struct AnnotationParameterFlag(pub u16);
173
174#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
176pub struct BitsetTypeFlag(pub u16);
177
178#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
180pub struct BitfieldFlag(pub u16);