@@ -2,12 +2,14 @@ use serde::{Deserialize, Serialize};
22
33#[ derive( Debug , Serialize , Deserialize ) ]
44#[ serde( rename_all = "camelCase" ) ]
5+ #[ serde( deny_unknown_fields) ]
56pub struct Main {
67 grammars : Grammars ,
78}
89
910#[ derive( Debug , Serialize , Deserialize ) ]
1011#[ serde( rename_all = "camelCase" ) ]
12+ #[ serde( deny_unknown_fields) ]
1113pub 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) ]
2528pub 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) ]
3539pub 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) ]
5964pub 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) ]
7682pub 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) ]
8895struct 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) ]
95103pub 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) ]
105114pub 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) ]
115125pub 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) ]
152163pub struct Center {
153164 // TODO: fill in fields
154165}
155166
156167#[ derive( Debug , Serialize , Deserialize ) ]
157168#[ serde( rename_all = "camelCase" ) ]
169+ #[ serde( deny_unknown_fields) ]
158170pub struct Copy {
159171 name : String ,
160172}
161173
162174#[ derive( Debug , Serialize , Deserialize ) ]
163175#[ serde( rename_all = "camelCase" ) ]
176+ #[ serde( deny_unknown_fields) ]
164177pub struct CornerCut {
165178 // TODO: fill in fields
166179}
167180
168181#[ derive( Debug , Serialize , Deserialize ) ]
169182#[ serde( rename_all = "camelCase" ) ]
183+ #[ serde( deny_unknown_fields) ]
170184pub struct Hemisphere {
171185 // TODO: fill in fields
172186}
173187
174188#[ derive( Debug , Serialize , Deserialize ) ]
175189#[ serde( rename_all = "camelCase" ) ]
190+ #[ serde( deny_unknown_fields) ]
176191pub struct InnerArch {
177192 // TODO: fill in fields
178193}
179194
180195#[ derive( Debug , Serialize , Deserialize ) ]
181196#[ serde( rename_all = "camelCase" ) ]
197+ #[ serde( deny_unknown_fields) ]
182198pub struct InnerCircle {
183199 // TODO: fill in fields
184200}
185201
186202#[ derive( Debug , Serialize , Deserialize ) ]
187203#[ serde( rename_all = "camelCase" ) ]
204+ #[ serde( deny_unknown_fields) ]
188205pub struct InnerSemiCircle {
189206 // TODO: fill in fields
190207}
191208
192209#[ derive( Debug , Serialize , Deserialize ) ]
193210#[ serde( rename_all = "camelCase" ) ]
211+ #[ serde( deny_unknown_fields) ]
194212pub struct Insert {
195213 // TODO: fill in fields
196214}
197215
198216#[ derive( Debug , Serialize , Deserialize ) ]
199217#[ serde( rename_all = "camelCase" ) ]
218+ #[ serde( deny_unknown_fields) ]
200219pub struct Pyramid {
201220 // TODO: fill in fields
202221}
203222
204223#[ derive( Debug , Serialize , Deserialize ) ]
205224#[ serde( rename_all = "camelCase" ) ]
225+ #[ serde( deny_unknown_fields) ]
206226pub struct RoofGable {
207227 // TODO: fill in fields
208228}
209229
210230#[ derive( Debug , Serialize , Deserialize ) ]
211231#[ serde( rename_all = "camelCase" ) ]
232+ #[ serde( deny_unknown_fields) ]
212233pub struct RoofHip {
213234 // TODO: fill in fields
214235}
215236
216237#[ derive( Debug , Serialize , Deserialize ) ]
217238#[ serde( rename_all = "camelCase" ) ]
239+ #[ serde( deny_unknown_fields) ]
218240pub struct Rotate {
219241 // TODO: fill in fields
220242}
221243
222244#[ derive( Debug , Serialize , Deserialize ) ]
223245#[ serde( rename_all = "camelCase" ) ]
246+ #[ serde( deny_unknown_fields) ]
224247pub struct ShapeL {
225248 // TODO: fill in fields
226249}
227250
228251#[ derive( Debug , Serialize , Deserialize ) ]
229252#[ serde( rename_all = "camelCase" ) ]
253+ #[ serde( deny_unknown_fields) ]
230254pub struct ShapeU {
231255 // TODO: fill in fields
232256}
233257
234258#[ derive( Debug , Serialize , Deserialize ) ]
235259#[ serde( rename_all = "camelCase" ) ]
260+ #[ serde( deny_unknown_fields) ]
236261pub struct Taper {
237262 // TODO: fill in fields
238263}
239264
240265#[ derive( Debug , Serialize , Deserialize ) ]
241266#[ serde( rename_all = "camelCase" ) ]
267+ #[ serde( deny_unknown_fields) ]
242268pub 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) ]
252279pub enum EMode {
253280 Absolute ,
254281 Relative ,
255282}
256283
257284#[ derive( Debug , Serialize , Deserialize ) ]
258285#[ serde( rename_all = "camelCase" ) ]
286+ #[ serde( deny_unknown_fields) ]
259287enum ECoordSystem {
260288 World ,
261289 Object ,
262290}
263291
264292#[ derive( Debug , Serialize , Deserialize ) ]
265293#[ serde( rename_all = "camelCase" ) ]
294+ #[ serde( deny_unknown_fields) ]
266295pub struct Color {
267296 s : String ,
268297}
269298
270299#[ derive( Debug , Serialize , Deserialize ) ]
271300#[ serde( rename_all = "camelCase" ) ]
301+ #[ serde( deny_unknown_fields) ]
272302pub 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) ]
279310pub struct Texture {
280311 path : String ,
281312}
282313
283314#[ derive( Debug , Serialize , Deserialize ) ]
284315#[ serde( rename_all = "camelCase" ) ]
316+ #[ serde( deny_unknown_fields) ]
285317pub 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) ]
294327pub 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) ]
303337pub 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) ]
314349pub 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) ]
322358pub 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) ]
340377pub 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) ]
350388pub 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) ]
356395pub 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) ]
363403pub 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) ]
375416pub struct Offset {
376417 distance : String , // TODO: should not be string
377418 #[ serde( skip_serializing_if = "Option::is_none" ) ]
0 commit comments