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 IS_DEFAULT: u16 = 1 << 6;
81 #[must_use]
83 pub const fn empty() -> Self {
84 Self(0)
85 }
86}
87
88#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
90pub struct UnionDiscriminatorFlag(pub u16);
91
92#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
94pub struct EnumTypeFlag(pub u16);
95
96impl EnumTypeFlag {
97 pub const IGNORE_LITERAL_NAMES: u16 = 1 << 0;
101
102 #[must_use]
104 pub const fn empty() -> Self {
105 Self(0)
106 }
107
108 #[must_use]
110 pub const fn has(self, bit: u16) -> bool {
111 (self.0 & bit) != 0
112 }
113}
114
115#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
117pub struct EnumLiteralFlag(pub u16);
118
119impl EnumLiteralFlag {
120 pub const IS_DEFAULT_LITERAL: u16 = 1 << 0;
122}
123
124#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
126pub struct BitmaskTypeFlag(pub u16);
127
128#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
130pub struct BitflagFlag(pub u16);
131
132#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
134pub struct CollectionTypeFlag(pub u16);
135
136#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
138pub struct CollectionElementFlag(pub u16);
139
140#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
142pub struct AliasTypeFlag(pub u16);
143
144#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
146pub struct AliasMemberFlag(pub u16);
147
148#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
150pub struct AnnotationTypeFlag(pub u16);
151
152#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
154pub struct AnnotationParameterFlag(pub u16);
155
156#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
158pub struct BitsetTypeFlag(pub u16);
159
160#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
162pub struct BitfieldFlag(pub u16);