@@ -28,8 +28,10 @@ pub struct ClassDefinition {
28
28
pub specifier : ClassSpecifier ,
29
29
}
30
30
31
- #[ derive( CommonTraits !) ]
31
+ #[ derive( CommonTraits !, Default ) ]
32
32
pub enum ClassSpecifier {
33
+ #[ default]
34
+ Empty ,
33
35
Long {
34
36
name : String ,
35
37
description : Vec < String > ,
@@ -45,19 +47,10 @@ pub enum ClassSpecifier {
45
47
} ,
46
48
}
47
49
48
- impl Default for ClassSpecifier {
49
- fn default ( ) -> Self {
50
- ClassSpecifier :: Long {
51
- name : "" . to_string ( ) ,
52
- description : Vec :: new ( ) ,
53
- composition : Vec :: new ( ) ,
54
- name_end : "" . to_string ( ) ,
55
- }
56
- }
57
- }
58
-
59
- #[ derive( CommonTraits !) ]
50
+ #[ derive( CommonTraits !, Default ) ]
60
51
pub enum CompositionPart {
52
+ #[ default]
53
+ Empty ,
61
54
ElementList {
62
55
visibility : Visibility ,
63
56
elements : Vec < Element > ,
@@ -73,8 +66,10 @@ pub enum CompositionPart {
73
66
} ,
74
67
}
75
68
76
- #[ derive( CommonTraits !) ]
69
+ #[ derive( CommonTraits !, Default ) ]
77
70
pub enum Element {
71
+ #[ default]
72
+ Empty ,
78
73
ImportClause {
79
74
alias : String ,
80
75
name : Name ,
@@ -93,14 +88,14 @@ pub enum Element {
93
88
} ,
94
89
}
95
90
96
- #[ derive( CommonTraits !) ]
91
+ #[ derive( CommonTraits !, Default ) ]
97
92
pub struct ComponentDeclaration {
98
93
pub declaration : Declaration ,
99
94
pub condition_attribute : Option < Expression > ,
100
95
pub description : Description ,
101
96
}
102
97
103
- #[ derive( CommonTraits !) ]
98
+ #[ derive( CommonTraits !, Default ) ]
104
99
pub struct ComponentDeclaration1 {
105
100
pub declaration : Declaration ,
106
101
pub description : Description ,
@@ -112,29 +107,29 @@ pub struct ClassPrefixes {
112
107
pub class_type : ClassType ,
113
108
}
114
109
115
- #[ derive( CommonTraits !) ]
110
+ #[ derive( CommonTraits !, Default ) ]
116
111
pub struct ComponentClause {
117
112
pub type_prefix : TypePrefix ,
118
113
pub type_specifier : TypeSpecifier ,
119
114
pub array_subscripts : Option < ArraySubscripts > ,
120
115
pub components : Vec < ComponentDeclaration > ,
121
116
}
122
117
123
- #[ derive( CommonTraits !) ]
118
+ #[ derive( CommonTraits !, Default ) ]
124
119
pub struct ComponentClause1 {
125
120
pub type_prefix : TypePrefix ,
126
121
pub type_specifier : TypeSpecifier ,
127
122
pub component_declaration1 : ComponentDeclaration1 ,
128
123
}
129
124
130
- #[ derive( CommonTraits !) ]
125
+ #[ derive( CommonTraits !, Default ) ]
131
126
pub struct Declaration {
132
127
pub name : String ,
133
128
pub array_subscripts : Option < ArraySubscripts > ,
134
129
pub modification : Option < Modification > ,
135
130
}
136
131
137
- #[ derive( CommonTraits !) ]
132
+ #[ derive( CommonTraits !, Default ) ]
138
133
pub struct TypeSpecifier {
139
134
pub leading_period : bool ,
140
135
pub name : Name ,
@@ -143,8 +138,10 @@ pub struct TypeSpecifier {
143
138
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
144
139
// Equations
145
140
146
- #[ derive( CommonTraits !) ]
141
+ #[ derive( CommonTraits !, Default ) ]
147
142
pub enum Equation {
143
+ #[ default]
144
+ Empty ,
148
145
Simple {
149
146
lhs : Expression ,
150
147
rhs : Expression ,
@@ -167,7 +164,7 @@ pub enum Equation {
167
164
} ,
168
165
}
169
166
170
- #[ derive( CommonTraits !) ]
167
+ #[ derive( CommonTraits !, Default ) ]
171
168
pub struct IfEquationBlock {
172
169
pub cond : Expression ,
173
170
pub eqs : Vec < Equation > ,
@@ -176,8 +173,10 @@ pub struct IfEquationBlock {
176
173
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
177
174
// Statements
178
175
179
- #[ derive( CommonTraits !) ]
176
+ #[ derive( CommonTraits !, Default ) ]
180
177
pub enum Statement {
178
+ #[ default]
179
+ Empty ,
181
180
Assignment {
182
181
comp : ComponentReference ,
183
182
rhs : Expression ,
@@ -206,7 +205,7 @@ pub enum Statement {
206
205
} ,
207
206
}
208
207
209
- #[ derive( CommonTraits !) ]
208
+ #[ derive( CommonTraits !, Default ) ]
210
209
pub struct IfStatementBlock {
211
210
pub cond : Expression ,
212
211
pub stmts : Vec < Statement > ,
@@ -215,8 +214,10 @@ pub struct IfStatementBlock {
215
214
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
216
215
// Expressions
217
216
218
- #[ derive( CommonTraits !) ]
217
+ #[ derive( CommonTraits !, Default ) ]
219
218
pub enum Expression {
219
+ #[ default]
220
+ Empty ,
220
221
UnsignedInteger ( String ) ,
221
222
UnsignedReal ( String ) ,
222
223
Boolean ( bool ) ,
@@ -249,40 +250,44 @@ pub enum Expression {
249
250
} ,
250
251
}
251
252
252
- #[ derive( CommonTraits !) ]
253
+ #[ derive( CommonTraits !, Default ) ]
253
254
pub struct IfExpressionBlock {
254
255
pub cond : Expression ,
255
256
pub expr : Expression ,
256
257
}
257
258
258
- #[ derive( CommonTraits !) ]
259
+ #[ derive( CommonTraits !, Default ) ]
259
260
pub struct ComponentReference {
260
261
pub local : bool ,
261
262
pub parts : Vec < RefPart > ,
262
263
}
263
264
264
- #[ derive( CommonTraits !) ]
265
+ #[ derive( CommonTraits !, Default ) ]
265
266
pub struct RefPart {
266
267
pub name : String ,
267
268
pub array_subscripts : Option < ArraySubscripts > ,
268
269
}
269
270
270
- #[ derive( CommonTraits !) ]
271
+ #[ derive( CommonTraits !, Default ) ]
271
272
pub struct ArraySubscripts {
272
273
pub sub : Vec < Subscript > ,
273
274
}
274
275
275
- #[ derive( CommonTraits !) ]
276
+ #[ derive( CommonTraits !, Default ) ]
276
277
pub enum Subscript {
278
+ #[ default]
279
+ Empty ,
277
280
Colon ,
278
281
Expression ( Expression ) ,
279
282
}
280
283
281
284
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
282
285
// Modification
283
286
284
- #[ derive( CommonTraits !) ]
287
+ #[ derive( CommonTraits !, Default ) ]
285
288
pub enum Argument {
289
+ #[ default]
290
+ Empty ,
286
291
Modification {
287
292
name : Name ,
288
293
each : bool ,
@@ -294,8 +299,10 @@ pub enum Argument {
294
299
Redeclaration ,
295
300
}
296
301
297
- #[ derive( CommonTraits !) ]
302
+ #[ derive( CommonTraits !, Default ) ]
298
303
pub enum Modification {
304
+ #[ default]
305
+ Empty ,
299
306
Expression {
300
307
expr : ModExpr ,
301
308
} ,
@@ -305,10 +312,14 @@ pub enum Modification {
305
312
} ,
306
313
}
307
314
308
- #[ derive( CommonTraits !) ]
315
+ #[ derive( CommonTraits !, Default ) ]
309
316
pub enum ModExpr {
317
+ #[ default]
318
+ Empty ,
310
319
Break ,
311
- Expression { expr : Expression } ,
320
+ Expression {
321
+ expr : Expression ,
322
+ } ,
312
323
}
313
324
314
325
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
@@ -320,14 +331,14 @@ pub struct Description {
320
331
pub annotation : Vec < Argument > ,
321
332
}
322
333
323
- #[ derive( CommonTraits !) ]
334
+ #[ derive( CommonTraits !, Default ) ]
324
335
pub struct TypePrefix {
325
336
pub connection : Connection ,
326
337
pub variability : Variability ,
327
338
pub causality : Causality ,
328
339
}
329
340
330
- #[ derive( CommonTraits !) ]
341
+ #[ derive( CommonTraits !, Default ) ]
331
342
pub struct ForIndex {
332
343
pub ident : String ,
333
344
pub in_expr : Option < Expression > ,
@@ -342,7 +353,7 @@ pub struct Span {
342
353
pub right : usize ,
343
354
}
344
355
345
- #[ derive( CommonTraits !) ]
356
+ #[ derive( CommonTraits !, Default ) ]
346
357
pub struct ElementFlags {
347
358
pub replaceable : bool ,
348
359
pub redeclare : bool ,
@@ -351,36 +362,44 @@ pub struct ElementFlags {
351
362
pub outer : bool ,
352
363
}
353
364
354
- #[ derive( CommonTraits !) ]
365
+ #[ derive( CommonTraits !, Default ) ]
355
366
pub enum Causality {
356
- None ,
367
+ #[ default]
368
+ Empty ,
357
369
Input ,
358
370
Output ,
359
371
}
360
372
361
- #[ derive( CommonTraits !) ]
373
+ #[ derive( CommonTraits !, Default ) ]
362
374
pub enum Variability {
375
+ #[ default]
376
+ Empty ,
363
377
Continuous ,
364
378
Discrete ,
365
379
Parameter ,
366
380
Constant ,
367
381
}
368
382
369
- #[ derive( CommonTraits !) ]
383
+ #[ derive( CommonTraits !, Default ) ]
370
384
pub enum Visibility {
385
+ #[ default]
386
+ Empty ,
371
387
Public ,
372
388
Protected ,
373
389
}
374
390
375
- #[ derive( CommonTraits !) ]
391
+ #[ derive( CommonTraits !, Default ) ]
376
392
pub enum Connection {
377
- None ,
393
+ #[ default]
394
+ Empty ,
378
395
Flow ,
379
396
Stream ,
380
397
}
381
398
382
- #[ derive( CommonTraits !) ]
399
+ #[ derive( CommonTraits !, Default ) ]
383
400
pub enum UnaryOp {
401
+ #[ default]
402
+ Empty ,
384
403
Paren ,
385
404
Not ,
386
405
Negative ,
@@ -389,8 +408,10 @@ pub enum UnaryOp {
389
408
ElemPositive ,
390
409
}
391
410
392
- #[ derive( CommonTraits !) ]
411
+ #[ derive( CommonTraits !, Default ) ]
393
412
pub enum BinaryOp {
413
+ #[ default]
414
+ Empty ,
394
415
Paren ,
395
416
Not ,
396
417
Add ,
@@ -417,6 +438,7 @@ pub enum BinaryOp {
417
438
#[ derive( CommonTraits !, Default ) ]
418
439
pub enum ClassType {
419
440
#[ default]
441
+ Empty ,
420
442
Class ,
421
443
Model ,
422
444
Record ,
@@ -433,7 +455,7 @@ pub enum ClassType {
433
455
Operator ,
434
456
}
435
457
436
- #[ derive( CommonTraits !) ]
458
+ #[ derive( CommonTraits !, Default ) ]
437
459
pub struct Name {
438
460
pub ident : Vec < String > ,
439
461
}
0 commit comments