Skip to content

Commit c20ba8e

Browse files
committed
deny_unknown_fields
1 parent 54f9838 commit c20ba8e

1 file changed

Lines changed: 41 additions & 0 deletions

File tree

src/types.rs

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@ use serde::{Deserialize, Serialize};
22

33
#[derive(Debug, Serialize, Deserialize)]
44
#[serde(rename_all = "camelCase")]
5+
#[serde(deny_unknown_fields)]
56
pub struct Main {
67
grammars: Grammars,
78
}
89

910
#[derive(Debug, Serialize, Deserialize)]
1011
#[serde(rename_all = "camelCase")]
12+
#[serde(deny_unknown_fields)]
1113
pub struct Grammars {
1214
version: String,
1315
#[serde(default)]
@@ -22,6 +24,7 @@ pub struct Grammars {
2224

2325
#[derive(Debug, Serialize, Deserialize)]
2426
#[serde(rename_all = "camelCase")]
27+
#[serde(deny_unknown_fields)]
2528
pub struct Export {
2629
name: String,
2730
r#type: String,
@@ -32,6 +35,7 @@ pub struct Export {
3235

3336
#[derive(Debug, Serialize, Deserialize)]
3437
#[serde(rename_all = "camelCase")]
38+
#[serde(deny_unknown_fields)]
3539
pub struct ExportParam {
3640
name: String,
3741
r#type: EType,
@@ -56,6 +60,7 @@ pub enum Shape {
5660

5761
#[derive(Debug, Serialize, Deserialize)]
5862
#[serde(rename_all = "camelCase")]
63+
#[serde(deny_unknown_fields)]
5964
pub struct Polygon {
6065
rule: String,
6166
#[serde(default)]
@@ -73,6 +78,7 @@ pub struct Polygon {
7378

7479
#[derive(Debug, Serialize, Deserialize)]
7580
#[serde(rename_all = "camelCase")]
81+
#[serde(deny_unknown_fields)]
7682
pub struct Rectangle {
7783
width: u32,
7884
height: u32,
@@ -85,13 +91,15 @@ pub struct Rectangle {
8591

8692
#[derive(Debug, Serialize, Deserialize)]
8793
#[serde(rename_all = "camelCase")]
94+
#[serde(deny_unknown_fields)]
8895
struct Skeleton {
8996
offset: i32,
9097
indices: Vec<(i32, i32)>,
9198
}
9299

93100
#[derive(Debug, Serialize, Deserialize)]
94101
#[serde(rename_all = "camelCase")]
102+
#[serde(deny_unknown_fields)]
95103
pub struct Grammar {
96104
#[serde(default)]
97105
#[serde(skip_serializing_if = "Option::is_none")]
@@ -102,6 +110,7 @@ pub struct Grammar {
102110

103111
#[derive(Debug, Serialize, Deserialize)]
104112
#[serde(rename_all = "camelCase")]
113+
#[serde(deny_unknown_fields)]
105114
pub struct Attr {
106115
name: String,
107116
value: String,
@@ -112,6 +121,7 @@ pub struct Attr {
112121

113122
#[derive(Debug, Serialize, Deserialize)]
114123
#[serde(rename_all = "camelCase")]
124+
#[serde(deny_unknown_fields)]
115125
pub struct Rule {
116126
name: String,
117127
#[serde(with = "serde_yaml::with::singleton_map_recursive")]
@@ -149,96 +159,112 @@ pub enum Op {
149159

150160
#[derive(Debug, Serialize, Deserialize)]
151161
#[serde(rename_all = "camelCase")]
162+
#[serde(deny_unknown_fields)]
152163
pub struct Center {
153164
// TODO: fill in fields
154165
}
155166

156167
#[derive(Debug, Serialize, Deserialize)]
157168
#[serde(rename_all = "camelCase")]
169+
#[serde(deny_unknown_fields)]
158170
pub struct Copy {
159171
name: String,
160172
}
161173

162174
#[derive(Debug, Serialize, Deserialize)]
163175
#[serde(rename_all = "camelCase")]
176+
#[serde(deny_unknown_fields)]
164177
pub struct CornerCut {
165178
// TODO: fill in fields
166179
}
167180

168181
#[derive(Debug, Serialize, Deserialize)]
169182
#[serde(rename_all = "camelCase")]
183+
#[serde(deny_unknown_fields)]
170184
pub struct Hemisphere {
171185
// TODO: fill in fields
172186
}
173187

174188
#[derive(Debug, Serialize, Deserialize)]
175189
#[serde(rename_all = "camelCase")]
190+
#[serde(deny_unknown_fields)]
176191
pub struct InnerArch {
177192
// TODO: fill in fields
178193
}
179194

180195
#[derive(Debug, Serialize, Deserialize)]
181196
#[serde(rename_all = "camelCase")]
197+
#[serde(deny_unknown_fields)]
182198
pub struct InnerCircle {
183199
// TODO: fill in fields
184200
}
185201

186202
#[derive(Debug, Serialize, Deserialize)]
187203
#[serde(rename_all = "camelCase")]
204+
#[serde(deny_unknown_fields)]
188205
pub struct InnerSemiCircle {
189206
// TODO: fill in fields
190207
}
191208

192209
#[derive(Debug, Serialize, Deserialize)]
193210
#[serde(rename_all = "camelCase")]
211+
#[serde(deny_unknown_fields)]
194212
pub struct Insert {
195213
// TODO: fill in fields
196214
}
197215

198216
#[derive(Debug, Serialize, Deserialize)]
199217
#[serde(rename_all = "camelCase")]
218+
#[serde(deny_unknown_fields)]
200219
pub struct Pyramid {
201220
// TODO: fill in fields
202221
}
203222

204223
#[derive(Debug, Serialize, Deserialize)]
205224
#[serde(rename_all = "camelCase")]
225+
#[serde(deny_unknown_fields)]
206226
pub struct RoofGable {
207227
// TODO: fill in fields
208228
}
209229

210230
#[derive(Debug, Serialize, Deserialize)]
211231
#[serde(rename_all = "camelCase")]
232+
#[serde(deny_unknown_fields)]
212233
pub struct RoofHip {
213234
// TODO: fill in fields
214235
}
215236

216237
#[derive(Debug, Serialize, Deserialize)]
217238
#[serde(rename_all = "camelCase")]
239+
#[serde(deny_unknown_fields)]
218240
pub struct Rotate {
219241
// TODO: fill in fields
220242
}
221243

222244
#[derive(Debug, Serialize, Deserialize)]
223245
#[serde(rename_all = "camelCase")]
246+
#[serde(deny_unknown_fields)]
224247
pub struct ShapeL {
225248
// TODO: fill in fields
226249
}
227250

228251
#[derive(Debug, Serialize, Deserialize)]
229252
#[serde(rename_all = "camelCase")]
253+
#[serde(deny_unknown_fields)]
230254
pub struct ShapeU {
231255
// TODO: fill in fields
232256
}
233257

234258
#[derive(Debug, Serialize, Deserialize)]
235259
#[serde(rename_all = "camelCase")]
260+
#[serde(deny_unknown_fields)]
236261
pub struct Taper {
237262
// TODO: fill in fields
238263
}
239264

240265
#[derive(Debug, Serialize, Deserialize)]
241266
#[serde(rename_all = "camelCase")]
267+
#[serde(deny_unknown_fields)]
242268
pub struct Translate {
243269
coord_system: ECoordSystem,
244270
mode: EMode,
@@ -249,39 +275,45 @@ pub struct Translate {
249275

250276
#[derive(Debug, Serialize, Deserialize)]
251277
#[serde(rename_all = "camelCase")]
278+
#[serde(deny_unknown_fields)]
252279
pub enum EMode {
253280
Absolute,
254281
Relative,
255282
}
256283

257284
#[derive(Debug, Serialize, Deserialize)]
258285
#[serde(rename_all = "camelCase")]
286+
#[serde(deny_unknown_fields)]
259287
enum ECoordSystem {
260288
World,
261289
Object,
262290
}
263291

264292
#[derive(Debug, Serialize, Deserialize)]
265293
#[serde(rename_all = "camelCase")]
294+
#[serde(deny_unknown_fields)]
266295
pub struct Color {
267296
s: String,
268297
}
269298

270299
#[derive(Debug, Serialize, Deserialize)]
271300
#[serde(rename_all = "camelCase")]
301+
#[serde(deny_unknown_fields)]
272302
pub struct Split {
273303
axis: EAxis,
274304
sizes: Vec<SizeDir>,
275305
}
276306

277307
#[derive(Debug, Serialize, Deserialize)]
278308
#[serde(rename_all = "camelCase")]
309+
#[serde(deny_unknown_fields)]
279310
pub struct Texture {
280311
path: String,
281312
}
282313

283314
#[derive(Debug, Serialize, Deserialize)]
284315
#[serde(rename_all = "camelCase")]
316+
#[serde(deny_unknown_fields)]
285317
pub struct SetupProjection {
286318
axes: EAxes,
287319
width: SizeDir,
@@ -291,6 +323,7 @@ pub struct SetupProjection {
291323
}
292324
#[derive(Debug, Serialize, Deserialize)]
293325
#[serde(rename_all = "camelCase")]
326+
#[serde(deny_unknown_fields)]
294327
pub struct Size {
295328
centered: bool,
296329
x: SizeDir,
@@ -300,6 +333,7 @@ pub struct Size {
300333

301334
#[derive(Debug, Serialize, Deserialize)]
302335
#[serde(rename_all = "camelCase")]
336+
#[serde(deny_unknown_fields)]
303337
pub struct SizeDir {
304338
value: String,
305339
#[serde(skip_serializing_if = "Option::is_none")]
@@ -311,6 +345,7 @@ pub struct SizeDir {
311345

312346
#[derive(Debug, Serialize, Deserialize)]
313347
#[serde(rename_all = "camelCase")]
348+
#[serde(deny_unknown_fields)]
314349
pub enum EAxis {
315350
X,
316351
Y,
@@ -319,6 +354,7 @@ pub enum EAxis {
319354

320355
#[derive(Debug, Serialize, Deserialize)]
321356
#[serde(rename_all = "camelCase")]
357+
#[serde(deny_unknown_fields)]
322358
pub enum EAxes {
323359
#[serde(rename = "scope.xy")]
324360
ScopeXY,
@@ -337,6 +373,7 @@ pub enum EAxes {
337373

338374
#[derive(Debug, Serialize, Deserialize)]
339375
#[serde(rename_all = "camelCase")]
376+
#[serde(deny_unknown_fields)]
340377
pub enum SizeType {
341378
Absolute,
342379
Relative,
@@ -347,19 +384,22 @@ pub enum SizeType {
347384

348385
#[derive(Debug, Serialize, Deserialize)]
349386
#[serde(rename_all = "camelCase")]
387+
#[serde(deny_unknown_fields)]
350388
pub struct Extrude {
351389
height: String, // TODO: should not be string
352390
}
353391

354392
#[derive(Debug, Serialize, Deserialize)]
355393
#[serde(rename_all = "camelCase")]
394+
#[serde(deny_unknown_fields)]
356395
pub struct Comp {
357396
name: CompName,
358397
value: String, // TODO: should not be string
359398
}
360399

361400
#[derive(Debug, Serialize, Deserialize)]
362401
#[serde(rename_all = "camelCase")]
402+
#[serde(deny_unknown_fields)]
363403
pub enum CompName {
364404
Front,
365405
Right,
@@ -372,6 +412,7 @@ pub enum CompName {
372412

373413
#[derive(Debug, Serialize, Deserialize)]
374414
#[serde(rename_all = "camelCase")]
415+
#[serde(deny_unknown_fields)]
375416
pub struct Offset {
376417
distance: String, // TODO: should not be string
377418
#[serde(skip_serializing_if = "Option::is_none")]

0 commit comments

Comments
 (0)