1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
#[doc = "Register `INT_ST` reader"]
pub struct R(crate::R<INT_ST_SPEC>);
impl core::ops::Deref for R {
type Target = crate::R<INT_ST_SPEC>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl From<crate::R<INT_ST_SPEC>> for R {
#[inline(always)]
fn from(reader: crate::R<INT_ST_SPEC>) -> Self {
R(reader)
}
}
#[doc = "Field `RXFIFO_FULL_INT_ST` reader - This is the status bit for UART_RXFIFO_FULL_INT when UART_RXFIFO_FULL_INT_ENA is set to 1."]
pub struct RXFIFO_FULL_INT_ST_R(crate::FieldReader<bool, bool>);
impl RXFIFO_FULL_INT_ST_R {
#[inline(always)]
pub(crate) fn new(bits: bool) -> Self {
RXFIFO_FULL_INT_ST_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for RXFIFO_FULL_INT_ST_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `TXFIFO_EMPTY_INT_ST` reader - This is the status bit for UART_TXFIFO_EMPTY_INT when UART_TXFIFO_EMPTY_INT_ENA is set to 1."]
pub struct TXFIFO_EMPTY_INT_ST_R(crate::FieldReader<bool, bool>);
impl TXFIFO_EMPTY_INT_ST_R {
#[inline(always)]
pub(crate) fn new(bits: bool) -> Self {
TXFIFO_EMPTY_INT_ST_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for TXFIFO_EMPTY_INT_ST_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `PARITY_ERR_INT_ST` reader - This is the status bit for UART_PARITY_ERR_INT when UART_PARITY_ERR_INT_ENA is set to 1."]
pub struct PARITY_ERR_INT_ST_R(crate::FieldReader<bool, bool>);
impl PARITY_ERR_INT_ST_R {
#[inline(always)]
pub(crate) fn new(bits: bool) -> Self {
PARITY_ERR_INT_ST_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for PARITY_ERR_INT_ST_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `FRM_ERR_INT_ST` reader - This is the status bit for UART_FRM_ERR_INT when UART_FRM_ERR_INT_ENA is set to 1."]
pub struct FRM_ERR_INT_ST_R(crate::FieldReader<bool, bool>);
impl FRM_ERR_INT_ST_R {
#[inline(always)]
pub(crate) fn new(bits: bool) -> Self {
FRM_ERR_INT_ST_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for FRM_ERR_INT_ST_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `RXFIFO_OVF_INT_ST` reader - This is the status bit for UART_RXFIFO_OVF_INT when UART_RXFIFO_OVF_INT_ENA is set to 1."]
pub struct RXFIFO_OVF_INT_ST_R(crate::FieldReader<bool, bool>);
impl RXFIFO_OVF_INT_ST_R {
#[inline(always)]
pub(crate) fn new(bits: bool) -> Self {
RXFIFO_OVF_INT_ST_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for RXFIFO_OVF_INT_ST_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `DSR_CHG_INT_ST` reader - This is the status bit for UART_DSR_CHG_INT when UART_DSR_CHG_INT_ENA is set to 1."]
pub struct DSR_CHG_INT_ST_R(crate::FieldReader<bool, bool>);
impl DSR_CHG_INT_ST_R {
#[inline(always)]
pub(crate) fn new(bits: bool) -> Self {
DSR_CHG_INT_ST_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for DSR_CHG_INT_ST_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `CTS_CHG_INT_ST` reader - This is the status bit for UART_CTS_CHG_INT when UART_CTS_CHG_INT_ENA is set to 1."]
pub struct CTS_CHG_INT_ST_R(crate::FieldReader<bool, bool>);
impl CTS_CHG_INT_ST_R {
#[inline(always)]
pub(crate) fn new(bits: bool) -> Self {
CTS_CHG_INT_ST_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for CTS_CHG_INT_ST_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `BRK_DET_INT_ST` reader - This is the status bit for UART_BRK_DET_INT when UART_BRK_DET_INT_ENA is set to 1."]
pub struct BRK_DET_INT_ST_R(crate::FieldReader<bool, bool>);
impl BRK_DET_INT_ST_R {
#[inline(always)]
pub(crate) fn new(bits: bool) -> Self {
BRK_DET_INT_ST_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for BRK_DET_INT_ST_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `RXFIFO_TOUT_INT_ST` reader - This is the status bit for UART_RXFIFO_TOUT_INT when UART_RXFIFO_TOUT_INT_ENA is set to 1."]
pub struct RXFIFO_TOUT_INT_ST_R(crate::FieldReader<bool, bool>);
impl RXFIFO_TOUT_INT_ST_R {
#[inline(always)]
pub(crate) fn new(bits: bool) -> Self {
RXFIFO_TOUT_INT_ST_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for RXFIFO_TOUT_INT_ST_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `SW_XON_INT_ST` reader - This is the status bit for UART_SW_XON_INT when UART_SW_XON_INT_ENA is set to 1."]
pub struct SW_XON_INT_ST_R(crate::FieldReader<bool, bool>);
impl SW_XON_INT_ST_R {
#[inline(always)]
pub(crate) fn new(bits: bool) -> Self {
SW_XON_INT_ST_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for SW_XON_INT_ST_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `SW_XOFF_INT_ST` reader - This is the status bit for UART_SW_XOFF_INT when UART_SW_XOFF_INT_ENA is set to 1."]
pub struct SW_XOFF_INT_ST_R(crate::FieldReader<bool, bool>);
impl SW_XOFF_INT_ST_R {
#[inline(always)]
pub(crate) fn new(bits: bool) -> Self {
SW_XOFF_INT_ST_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for SW_XOFF_INT_ST_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `GLITCH_DET_INT_ST` reader - This is the status bit for UART_GLITCH_DET_INT when UART_GLITCH_DET_INT_ENA is set to 1."]
pub struct GLITCH_DET_INT_ST_R(crate::FieldReader<bool, bool>);
impl GLITCH_DET_INT_ST_R {
#[inline(always)]
pub(crate) fn new(bits: bool) -> Self {
GLITCH_DET_INT_ST_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for GLITCH_DET_INT_ST_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `TX_BRK_DONE_INT_ST` reader - This is the status bit for UART_TX_BRK_DONE_INT when UART_TX_BRK_DONE_INT_ENA is set to 1."]
pub struct TX_BRK_DONE_INT_ST_R(crate::FieldReader<bool, bool>);
impl TX_BRK_DONE_INT_ST_R {
#[inline(always)]
pub(crate) fn new(bits: bool) -> Self {
TX_BRK_DONE_INT_ST_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for TX_BRK_DONE_INT_ST_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `TX_BRK_IDLE_DONE_INT_ST` reader - This is the status bit for UART_TX_BRK_IDLE_DONE_INT when UART_TX_BRK_IDLE_DONE_INT_ENA is set to 1."]
pub struct TX_BRK_IDLE_DONE_INT_ST_R(crate::FieldReader<bool, bool>);
impl TX_BRK_IDLE_DONE_INT_ST_R {
#[inline(always)]
pub(crate) fn new(bits: bool) -> Self {
TX_BRK_IDLE_DONE_INT_ST_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for TX_BRK_IDLE_DONE_INT_ST_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `TX_DONE_INT_ST` reader - This is the status bit for UART_TX_DONE_INT when UART_TX_DONE_INT_ENA is set to 1."]
pub struct TX_DONE_INT_ST_R(crate::FieldReader<bool, bool>);
impl TX_DONE_INT_ST_R {
#[inline(always)]
pub(crate) fn new(bits: bool) -> Self {
TX_DONE_INT_ST_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for TX_DONE_INT_ST_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `RS485_PARITY_ERR_INT_ST` reader - This is the status bit for UART_RS485_PARITY_ERR_INT when UART_RS485_PARITY_INT_ENA is set to 1."]
pub struct RS485_PARITY_ERR_INT_ST_R(crate::FieldReader<bool, bool>);
impl RS485_PARITY_ERR_INT_ST_R {
#[inline(always)]
pub(crate) fn new(bits: bool) -> Self {
RS485_PARITY_ERR_INT_ST_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for RS485_PARITY_ERR_INT_ST_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `RS485_FRM_ERR_INT_ST` reader - This is the status bit for UART_RS485_FRM_ERR_INT when UART_RS485_FRM_ERR_INT_ENA is set to 1."]
pub struct RS485_FRM_ERR_INT_ST_R(crate::FieldReader<bool, bool>);
impl RS485_FRM_ERR_INT_ST_R {
#[inline(always)]
pub(crate) fn new(bits: bool) -> Self {
RS485_FRM_ERR_INT_ST_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for RS485_FRM_ERR_INT_ST_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `RS485_CLASH_INT_ST` reader - This is the status bit for UART_RS485_CLASH_INT when UART_RS485_CLASH_INT_ENA is set to 1."]
pub struct RS485_CLASH_INT_ST_R(crate::FieldReader<bool, bool>);
impl RS485_CLASH_INT_ST_R {
#[inline(always)]
pub(crate) fn new(bits: bool) -> Self {
RS485_CLASH_INT_ST_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for RS485_CLASH_INT_ST_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `AT_CMD_CHAR_DET_INT_ST` reader - This is the status bit for UART_AT_CMD_CHAR_DET_INT when UART_AT_CMD_CHAR_DET_INT_ENA is set to 1."]
pub struct AT_CMD_CHAR_DET_INT_ST_R(crate::FieldReader<bool, bool>);
impl AT_CMD_CHAR_DET_INT_ST_R {
#[inline(always)]
pub(crate) fn new(bits: bool) -> Self {
AT_CMD_CHAR_DET_INT_ST_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for AT_CMD_CHAR_DET_INT_ST_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `WAKEUP_INT_ST` reader - This is the status bit for UART_WAKEUP_INT when UART_WAKEUP_INT_ENA is set to 1."]
pub struct WAKEUP_INT_ST_R(crate::FieldReader<bool, bool>);
impl WAKEUP_INT_ST_R {
#[inline(always)]
pub(crate) fn new(bits: bool) -> Self {
WAKEUP_INT_ST_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for WAKEUP_INT_ST_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl R {
#[doc = "Bit 0 - This is the status bit for UART_RXFIFO_FULL_INT when UART_RXFIFO_FULL_INT_ENA is set to 1."]
#[inline(always)]
pub fn rxfifo_full_int_st(&self) -> RXFIFO_FULL_INT_ST_R {
RXFIFO_FULL_INT_ST_R::new((self.bits & 1) != 0)
}
#[doc = "Bit 1 - This is the status bit for UART_TXFIFO_EMPTY_INT when UART_TXFIFO_EMPTY_INT_ENA is set to 1."]
#[inline(always)]
pub fn txfifo_empty_int_st(&self) -> TXFIFO_EMPTY_INT_ST_R {
TXFIFO_EMPTY_INT_ST_R::new(((self.bits >> 1) & 1) != 0)
}
#[doc = "Bit 2 - This is the status bit for UART_PARITY_ERR_INT when UART_PARITY_ERR_INT_ENA is set to 1."]
#[inline(always)]
pub fn parity_err_int_st(&self) -> PARITY_ERR_INT_ST_R {
PARITY_ERR_INT_ST_R::new(((self.bits >> 2) & 1) != 0)
}
#[doc = "Bit 3 - This is the status bit for UART_FRM_ERR_INT when UART_FRM_ERR_INT_ENA is set to 1."]
#[inline(always)]
pub fn frm_err_int_st(&self) -> FRM_ERR_INT_ST_R {
FRM_ERR_INT_ST_R::new(((self.bits >> 3) & 1) != 0)
}
#[doc = "Bit 4 - This is the status bit for UART_RXFIFO_OVF_INT when UART_RXFIFO_OVF_INT_ENA is set to 1."]
#[inline(always)]
pub fn rxfifo_ovf_int_st(&self) -> RXFIFO_OVF_INT_ST_R {
RXFIFO_OVF_INT_ST_R::new(((self.bits >> 4) & 1) != 0)
}
#[doc = "Bit 5 - This is the status bit for UART_DSR_CHG_INT when UART_DSR_CHG_INT_ENA is set to 1."]
#[inline(always)]
pub fn dsr_chg_int_st(&self) -> DSR_CHG_INT_ST_R {
DSR_CHG_INT_ST_R::new(((self.bits >> 5) & 1) != 0)
}
#[doc = "Bit 6 - This is the status bit for UART_CTS_CHG_INT when UART_CTS_CHG_INT_ENA is set to 1."]
#[inline(always)]
pub fn cts_chg_int_st(&self) -> CTS_CHG_INT_ST_R {
CTS_CHG_INT_ST_R::new(((self.bits >> 6) & 1) != 0)
}
#[doc = "Bit 7 - This is the status bit for UART_BRK_DET_INT when UART_BRK_DET_INT_ENA is set to 1."]
#[inline(always)]
pub fn brk_det_int_st(&self) -> BRK_DET_INT_ST_R {
BRK_DET_INT_ST_R::new(((self.bits >> 7) & 1) != 0)
}
#[doc = "Bit 8 - This is the status bit for UART_RXFIFO_TOUT_INT when UART_RXFIFO_TOUT_INT_ENA is set to 1."]
#[inline(always)]
pub fn rxfifo_tout_int_st(&self) -> RXFIFO_TOUT_INT_ST_R {
RXFIFO_TOUT_INT_ST_R::new(((self.bits >> 8) & 1) != 0)
}
#[doc = "Bit 9 - This is the status bit for UART_SW_XON_INT when UART_SW_XON_INT_ENA is set to 1."]
#[inline(always)]
pub fn sw_xon_int_st(&self) -> SW_XON_INT_ST_R {
SW_XON_INT_ST_R::new(((self.bits >> 9) & 1) != 0)
}
#[doc = "Bit 10 - This is the status bit for UART_SW_XOFF_INT when UART_SW_XOFF_INT_ENA is set to 1."]
#[inline(always)]
pub fn sw_xoff_int_st(&self) -> SW_XOFF_INT_ST_R {
SW_XOFF_INT_ST_R::new(((self.bits >> 10) & 1) != 0)
}
#[doc = "Bit 11 - This is the status bit for UART_GLITCH_DET_INT when UART_GLITCH_DET_INT_ENA is set to 1."]
#[inline(always)]
pub fn glitch_det_int_st(&self) -> GLITCH_DET_INT_ST_R {
GLITCH_DET_INT_ST_R::new(((self.bits >> 11) & 1) != 0)
}
#[doc = "Bit 12 - This is the status bit for UART_TX_BRK_DONE_INT when UART_TX_BRK_DONE_INT_ENA is set to 1."]
#[inline(always)]
pub fn tx_brk_done_int_st(&self) -> TX_BRK_DONE_INT_ST_R {
TX_BRK_DONE_INT_ST_R::new(((self.bits >> 12) & 1) != 0)
}
#[doc = "Bit 13 - This is the status bit for UART_TX_BRK_IDLE_DONE_INT when UART_TX_BRK_IDLE_DONE_INT_ENA is set to 1."]
#[inline(always)]
pub fn tx_brk_idle_done_int_st(&self) -> TX_BRK_IDLE_DONE_INT_ST_R {
TX_BRK_IDLE_DONE_INT_ST_R::new(((self.bits >> 13) & 1) != 0)
}
#[doc = "Bit 14 - This is the status bit for UART_TX_DONE_INT when UART_TX_DONE_INT_ENA is set to 1."]
#[inline(always)]
pub fn tx_done_int_st(&self) -> TX_DONE_INT_ST_R {
TX_DONE_INT_ST_R::new(((self.bits >> 14) & 1) != 0)
}
#[doc = "Bit 15 - This is the status bit for UART_RS485_PARITY_ERR_INT when UART_RS485_PARITY_INT_ENA is set to 1."]
#[inline(always)]
pub fn rs485_parity_err_int_st(&self) -> RS485_PARITY_ERR_INT_ST_R {
RS485_PARITY_ERR_INT_ST_R::new(((self.bits >> 15) & 1) != 0)
}
#[doc = "Bit 16 - This is the status bit for UART_RS485_FRM_ERR_INT when UART_RS485_FRM_ERR_INT_ENA is set to 1."]
#[inline(always)]
pub fn rs485_frm_err_int_st(&self) -> RS485_FRM_ERR_INT_ST_R {
RS485_FRM_ERR_INT_ST_R::new(((self.bits >> 16) & 1) != 0)
}
#[doc = "Bit 17 - This is the status bit for UART_RS485_CLASH_INT when UART_RS485_CLASH_INT_ENA is set to 1."]
#[inline(always)]
pub fn rs485_clash_int_st(&self) -> RS485_CLASH_INT_ST_R {
RS485_CLASH_INT_ST_R::new(((self.bits >> 17) & 1) != 0)
}
#[doc = "Bit 18 - This is the status bit for UART_AT_CMD_CHAR_DET_INT when UART_AT_CMD_CHAR_DET_INT_ENA is set to 1."]
#[inline(always)]
pub fn at_cmd_char_det_int_st(&self) -> AT_CMD_CHAR_DET_INT_ST_R {
AT_CMD_CHAR_DET_INT_ST_R::new(((self.bits >> 18) & 1) != 0)
}
#[doc = "Bit 19 - This is the status bit for UART_WAKEUP_INT when UART_WAKEUP_INT_ENA is set to 1."]
#[inline(always)]
pub fn wakeup_int_st(&self) -> WAKEUP_INT_ST_R {
WAKEUP_INT_ST_R::new(((self.bits >> 19) & 1) != 0)
}
}
#[doc = "Masked interrupt status\n\nThis register you can [`read`]
(crate::generic::Reg::read). See [API]
(https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [int_st]
(index.html) module"]
pub struct INT_ST_SPEC;
impl crate::RegisterSpec for INT_ST_SPEC {
type Ux = u32;
}
#[doc = "`read()` method returns [int_st::R]
(R) reader structure"]
impl crate::Readable for INT_ST_SPEC {
type Reader = R;
}
#[doc = "`reset()` method sets INT_ST to value 0"]
impl crate::Resettable for INT_ST_SPEC {
#[inline(always)]
fn reset_value() -> Self::Ux {
0
}
}