1#[macro_export]
24macro_rules! primitive_string {
25 ($field_name:literal, true) => {
26 paste::paste! {
27 #[doc = concat!("Field: ", $field_name)]
28 pub [<$field_name>]: Option<$crate::primitives::StringType>,
29 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
30 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
31 }
32 };
33 ($field_name:literal, false) => {
34 paste::paste! {
35 #[doc = concat!("Field: ", $field_name)]
36 pub [<$field_name>]: $crate::primitives::StringType,
37 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
38 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
39 }
40 };
41}
42
43#[macro_export]
45macro_rules! primitive_boolean {
46 ($field_name:literal, true) => {
47 paste::paste! {
48 #[doc = concat!("Field: ", $field_name)]
49 pub [<$field_name>]: Option<$crate::primitives::BooleanType>,
50 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
51 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
52 }
53 };
54 ($field_name:literal, false) => {
55 paste::paste! {
56 #[doc = concat!("Field: ", $field_name)]
57 pub [<$field_name>]: $crate::primitives::BooleanType,
58 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
59 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
60 }
61 };
62}
63
64#[macro_export]
66macro_rules! primitive_integer {
67 ($field_name:literal, true) => {
68 paste::paste! {
69 #[doc = concat!("Field: ", $field_name)]
70 pub [<$field_name>]: Option<$crate::primitives::IntegerType>,
71 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
72 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
73 }
74 };
75 ($field_name:literal, false) => {
76 paste::paste! {
77 #[doc = concat!("Field: ", $field_name)]
78 pub [<$field_name>]: $crate::primitives::IntegerType,
79 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
80 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
81 }
82 };
83}
84
85#[macro_export]
87macro_rules! primitive_decimal {
88 ($field_name:literal, true) => {
89 paste::paste! {
90 #[doc = concat!("Field: ", $field_name)]
91 pub [<$field_name>]: Option<$crate::primitives::DecimalType>,
92 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
93 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
94 }
95 };
96 ($field_name:literal, false) => {
97 paste::paste! {
98 #[doc = concat!("Field: ", $field_name)]
99 pub [<$field_name>]: $crate::primitives::DecimalType,
100 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
101 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
102 }
103 };
104}
105
106#[macro_export]
108macro_rules! primitive_datetime {
109 ($field_name:literal, true) => {
110 paste::paste! {
111 #[doc = concat!("Field: ", $field_name)]
112 pub [<$field_name>]: Option<$crate::primitives::DateTimeType>,
113 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
114 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
115 }
116 };
117 ($field_name:literal, false) => {
118 paste::paste! {
119 #[doc = concat!("Field: ", $field_name)]
120 pub [<$field_name>]: $crate::primitives::DateTimeType,
121 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
122 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
123 }
124 };
125}
126
127#[macro_export]
129macro_rules! primitive_date {
130 ($field_name:literal, true) => {
131 paste::paste! {
132 #[doc = concat!("Field: ", $field_name)]
133 pub [<$field_name>]: Option<$crate::primitives::DateType>,
134 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
135 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
136 }
137 };
138 ($field_name:literal, false) => {
139 paste::paste! {
140 #[doc = concat!("Field: ", $field_name)]
141 pub [<$field_name>]: $crate::primitives::DateType,
142 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
143 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
144 }
145 };
146}
147
148#[macro_export]
150macro_rules! primitive_time {
151 ($field_name:literal, true) => {
152 paste::paste! {
153 #[doc = concat!("Field: ", $field_name)]
154 pub [<$field_name>]: Option<$crate::primitives::TimeType>,
155 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
156 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
157 }
158 };
159 ($field_name:literal, false) => {
160 paste::paste! {
161 #[doc = concat!("Field: ", $field_name)]
162 pub [<$field_name>]: $crate::primitives::TimeType,
163 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
164 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
165 }
166 };
167}
168
169#[macro_export]
171macro_rules! primitive_uri {
172 ($field_name:literal, true) => {
173 paste::paste! {
174 #[doc = concat!("Field: ", $field_name)]
175 pub [<$field_name>]: Option<$crate::primitives::UriType>,
176 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
177 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
178 }
179 };
180 ($field_name:literal, false) => {
181 paste::paste! {
182 #[doc = concat!("Field: ", $field_name)]
183 pub [<$field_name>]: $crate::primitives::UriType,
184 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
185 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
186 }
187 };
188}
189
190#[macro_export]
192macro_rules! primitive_canonical {
193 ($field_name:literal, true) => {
194 paste::paste! {
195 #[doc = concat!("Field: ", $field_name)]
196 pub [<$field_name>]: Option<$crate::primitives::CanonicalType>,
197 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
198 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
199 }
200 };
201 ($field_name:literal, false) => {
202 paste::paste! {
203 #[doc = concat!("Field: ", $field_name)]
204 pub [<$field_name>]: $crate::primitives::CanonicalType,
205 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
206 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
207 }
208 };
209}
210
211#[macro_export]
213macro_rules! primitive_base64binary {
214 ($field_name:literal, true) => {
215 paste::paste! {
216 #[doc = concat!("Field: ", $field_name)]
217 pub [<$field_name>]: Option<$crate::primitives::Base64BinaryType>,
218 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
219 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
220 }
221 };
222 ($field_name:literal, false) => {
223 paste::paste! {
224 #[doc = concat!("Field: ", $field_name)]
225 pub [<$field_name>]: $crate::primitives::Base64BinaryType,
226 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
227 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
228 }
229 };
230}
231
232#[macro_export]
234macro_rules! primitive_instant {
235 ($field_name:literal, true) => {
236 paste::paste! {
237 #[doc = concat!("Field: ", $field_name)]
238 pub [<$field_name>]: Option<$crate::primitives::InstantType>,
239 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
240 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
241 }
242 };
243 ($field_name:literal, false) => {
244 paste::paste! {
245 #[doc = concat!("Field: ", $field_name)]
246 pub [<$field_name>]: $crate::primitives::InstantType,
247 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
248 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
249 }
250 };
251}
252
253#[macro_export]
255macro_rules! primitive_positiveint {
256 ($field_name:literal, true) => {
257 paste::paste! {
258 #[doc = concat!("Field: ", $field_name)]
259 pub [<$field_name>]: Option<$crate::primitives::positiveint::PositiveIntType>,
260 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
261 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
262 }
263 };
264 ($field_name:literal, false) => {
265 paste::paste! {
266 #[doc = concat!("Field: ", $field_name)]
267 pub [<$field_name>]: $crate::primitives::positiveint::PositiveIntType,
268 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
269 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
270 }
271 };
272}
273
274#[macro_export]
276macro_rules! primitive_unsignedint {
277 ($field_name:literal, true) => {
278 paste::paste! {
279 #[doc = concat!("Field: ", $field_name)]
280 pub [<$field_name>]: Option<$crate::primitives::unsignedint::UnsignedIntType>,
281 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
282 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
283 }
284 };
285 ($field_name:literal, false) => {
286 paste::paste! {
287 #[doc = concat!("Field: ", $field_name)]
288 pub [<$field_name>]: $crate::primitives::unsignedint::UnsignedIntType,
289 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
290 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
291 }
292 };
293}
294
295#[macro_export]
297macro_rules! primitive_id {
298 ($field_name:literal, true) => {
299 paste::paste! {
300 #[doc = concat!("Field: ", $field_name)]
301 pub [<$field_name>]: Option<$crate::primitives::IdType>,
302 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
303 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
304 }
305 };
306 ($field_name:literal, false) => {
307 paste::paste! {
308 #[doc = concat!("Field: ", $field_name)]
309 pub [<$field_name>]: $crate::primitives::IdType,
310 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
311 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
312 }
313 };
314}
315
316#[macro_export]
318macro_rules! primitive_oid {
319 ($field_name:literal, true) => {
320 paste::paste! {
321 #[doc = concat!("Field: ", $field_name)]
322 pub [<$field_name>]: Option<$crate::primitives::OidType>,
323 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
324 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
325 }
326 };
327 ($field_name:literal, false) => {
328 paste::paste! {
329 #[doc = concat!("Field: ", $field_name)]
330 pub [<$field_name>]: $crate::primitives::OidType,
331 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
332 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
333 }
334 };
335}
336
337#[macro_export]
339macro_rules! primitive_uuid {
340 ($field_name:literal, true) => {
341 paste::paste! {
342 #[doc = concat!("Field: ", $field_name)]
343 pub [<$field_name>]: Option<$crate::primitives::UuidType>,
344 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
345 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
346 }
347 };
348 ($field_name:literal, false) => {
349 paste::paste! {
350 #[doc = concat!("Field: ", $field_name)]
351 pub [<$field_name>]: $crate::primitives::UuidType,
352 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
353 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
354 }
355 };
356}
357
358#[macro_export]
360macro_rules! primitive_code {
361 ($field_name:literal, true) => {
362 paste::paste! {
363 #[doc = concat!("Field: ", $field_name)]
364 pub [<$field_name>]: Option<$crate::primitives::CodeType>,
365 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
366 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
367 }
368 };
369 ($field_name:literal, false) => {
370 paste::paste! {
371 #[doc = concat!("Field: ", $field_name)]
372 pub [<$field_name>]: $crate::primitives::CodeType,
373 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
374 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
375 }
376 };
377}
378
379#[macro_export]
381macro_rules! primitive_markdown {
382 ($field_name:literal, true) => {
383 paste::paste! {
384 #[doc = concat!("Field: ", $field_name)]
385 pub [<$field_name>]: Option<$crate::primitives::MarkdownType>,
386 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
387 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
388 }
389 };
390 ($field_name:literal, false) => {
391 paste::paste! {
392 #[doc = concat!("Field: ", $field_name)]
393 pub [<$field_name>]: $crate::primitives::MarkdownType,
394 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
395 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
396 }
397 };
398}
399
400#[macro_export]
402macro_rules! primitive_url {
403 ($field_name:literal, true) => {
404 paste::paste! {
405 #[doc = concat!("Field: ", $field_name)]
406 pub [<$field_name>]: Option<$crate::primitives::UrlType>,
407 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
408 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
409 }
410 };
411 ($field_name:literal, false) => {
412 paste::paste! {
413 #[doc = concat!("Field: ", $field_name)]
414 pub [<$field_name>]: $crate::primitives::UrlType,
415 #[doc = concat!("Extension element for the '", $field_name, "' primitive field. Contains metadata and extensions.")]
416 pub [<_ $field_name>]: Option<$crate::datatypes::element::Element>,
417 }
418 };
419}