|
14 | 14 | #include <stdint.h> |
15 | 15 | #include <stdlib.h> |
16 | 16 |
|
| 17 | +/** |
| 18 | + * Variant enum for Vortex primitive types. |
| 19 | + */ |
| 20 | +typedef enum { |
| 21 | + /** |
| 22 | + * Unsigned 8-bit integer |
| 23 | + */ |
| 24 | + PTYPE_U8 = 0, |
| 25 | + /** |
| 26 | + * Unsigned 16-bit integer |
| 27 | + */ |
| 28 | + PTYPE_U16 = 1, |
| 29 | + /** |
| 30 | + * Unsigned 32-bit integer |
| 31 | + */ |
| 32 | + PTYPE_U32 = 2, |
| 33 | + /** |
| 34 | + * Unsigned 64-bit integer |
| 35 | + */ |
| 36 | + PTYPE_U64 = 3, |
| 37 | + /** |
| 38 | + * Signed 8-bit integer |
| 39 | + */ |
| 40 | + PTYPE_I8 = 4, |
| 41 | + /** |
| 42 | + * Signed 16-bit integer |
| 43 | + */ |
| 44 | + PTYPE_I16 = 5, |
| 45 | + /** |
| 46 | + * Signed 32-bit integer |
| 47 | + */ |
| 48 | + PTYPE_I32 = 6, |
| 49 | + /** |
| 50 | + * Signed 64-bit integer |
| 51 | + */ |
| 52 | + PTYPE_I64 = 7, |
| 53 | + /** |
| 54 | + * 16-bit floating point number |
| 55 | + */ |
| 56 | + PTYPE_F16 = 8, |
| 57 | + /** |
| 58 | + * 32-bit floating point number |
| 59 | + */ |
| 60 | + PTYPE_F32 = 9, |
| 61 | + /** |
| 62 | + * 64-bit floating point number |
| 63 | + */ |
| 64 | + PTYPE_F64 = 10, |
| 65 | +} vx_ptype; |
| 66 | + |
17 | 67 | /** |
18 | 68 | * The variant tag for a Vortex data type. |
19 | 69 | */ |
@@ -91,54 +141,61 @@ typedef enum { |
91 | 141 | } vx_log_level; |
92 | 142 |
|
93 | 143 | /** |
94 | | - * Variant enum for Vortex primitive types. |
| 144 | + * Physical type enum, represents the in-memory physical layout but might represent a different logical type. |
95 | 145 | */ |
96 | | -typedef enum { |
| 146 | +enum PType |
| 147 | +#ifdef __cplusplus |
| 148 | + : uint8_t |
| 149 | +#endif // __cplusplus |
| 150 | + { |
97 | 151 | /** |
98 | | - * Unsigned 8-bit integer |
| 152 | + * An 8-bit unsigned integer |
99 | 153 | */ |
100 | | - PTYPE_U8 = 0, |
| 154 | + U8 = 0, |
101 | 155 | /** |
102 | | - * Unsigned 16-bit integer |
| 156 | + * A 16-bit unsigned integer |
103 | 157 | */ |
104 | | - PTYPE_U16 = 1, |
| 158 | + U16 = 1, |
105 | 159 | /** |
106 | | - * Unsigned 32-bit integer |
| 160 | + * A 32-bit unsigned integer |
107 | 161 | */ |
108 | | - PTYPE_U32 = 2, |
| 162 | + U32 = 2, |
109 | 163 | /** |
110 | | - * Unsigned 64-bit integer |
| 164 | + * A 64-bit unsigned integer |
111 | 165 | */ |
112 | | - PTYPE_U64 = 3, |
| 166 | + U64 = 3, |
113 | 167 | /** |
114 | | - * Signed 8-bit integer |
| 168 | + * An 8-bit signed integer |
115 | 169 | */ |
116 | | - PTYPE_I8 = 4, |
| 170 | + I8 = 4, |
117 | 171 | /** |
118 | | - * Signed 16-bit integer |
| 172 | + * A 16-bit signed integer |
119 | 173 | */ |
120 | | - PTYPE_I16 = 5, |
| 174 | + I16 = 5, |
121 | 175 | /** |
122 | | - * Signed 32-bit integer |
| 176 | + * A 32-bit signed integer |
123 | 177 | */ |
124 | | - PTYPE_I32 = 6, |
| 178 | + I32 = 6, |
125 | 179 | /** |
126 | | - * Signed 64-bit integer |
| 180 | + * A 64-bit signed integer |
127 | 181 | */ |
128 | | - PTYPE_I64 = 7, |
| 182 | + I64 = 7, |
129 | 183 | /** |
130 | | - * 16-bit floating point number |
| 184 | + * A 16-bit floating point number |
131 | 185 | */ |
132 | | - PTYPE_F16 = 8, |
| 186 | + F16 = 8, |
133 | 187 | /** |
134 | | - * 32-bit floating point number |
| 188 | + * A 32-bit floating point number |
135 | 189 | */ |
136 | | - PTYPE_F32 = 9, |
| 190 | + F32 = 9, |
137 | 191 | /** |
138 | | - * 64-bit floating point number |
| 192 | + * A 64-bit floating point number |
139 | 193 | */ |
140 | | - PTYPE_F64 = 10, |
141 | | -} vx_ptype; |
| 194 | + F64 = 10, |
| 195 | +}; |
| 196 | +#ifndef __cplusplus |
| 197 | +typedef uint8_t PType; |
| 198 | +#endif // __cplusplus |
142 | 199 |
|
143 | 200 | /** |
144 | 201 | * The logical types of elements in Vortex arrays. |
@@ -167,6 +224,11 @@ typedef enum { |
167 | 224 | */ |
168 | 225 | typedef struct DType DType; |
169 | 226 |
|
| 227 | +/** |
| 228 | + * Whether an instance of a DType can be `null or not |
| 229 | + */ |
| 230 | +typedef struct Nullability Nullability; |
| 231 | + |
170 | 232 | /** |
171 | 233 | * Base type for all Vortex arrays. |
172 | 234 | * |
|
0 commit comments