Generated-output differences

quicktype output changed between the PR base and tested PR merge revisions.
← Back to the pull request
9test cases
9files differ
8modified
1new
0deleted
283changed lines
+283 −0insertions / deletions
Base 1b7cd112848c39891f6925009496089784d3a311 · PR merge e709a77641ffc377c377799ce09da452f95c6fe6 · Head 765a6a0015985113d4918c125730a379778cc578 · raw patch
Test case

test/inputs/schema/integer-type.schema

1 generated file · +14 −0
Mschema-pikedefault / TopLevel.pmod+14 −0
@@ -43,13 +43,27 @@ class TopLevel {
4343 TopLevel TopLevel_from_JSON(mixed json) {
4444 TopLevel retval = TopLevel();
4545
46+ if (json["above_i32_max"] < 0) error("Value below minimum");
47+ if (json["above_i32_max"] > 2147483648) error("Value above maximum");
4648 retval.above_i32_max = json["above_i32_max"];
49+ if (json["below_i32_min"] < -2147483649) error("Value below minimum");
50+ if (json["below_i32_min"] > 0) error("Value above maximum");
4751 retval.below_i32_min = json["below_i32_min"];
52+ if (json["i32_range"] < -2147483648) error("Value below minimum");
53+ if (json["i32_range"] > 2147483647) error("Value above maximum");
4854 retval.i32_range = json["i32_range"];
55+ if (json["large_bounds"] < -9007199254740991) error("Value below minimum");
56+ if (json["large_bounds"] > 9007199254740991) error("Value above maximum");
4957 retval.large_bounds = json["large_bounds"];
58+ if (json["only_maximum"] > 0) error("Value above maximum");
5059 retval.only_maximum = json["only_maximum"];
60+ if (json["only_minimum"] < 0) error("Value below minimum");
5161 retval.only_minimum = json["only_minimum"];
62+ if (json["small_negative"] < -100) error("Value below minimum");
63+ if (json["small_negative"] > 0) error("Value above maximum");
5264 retval.small_negative = json["small_negative"];
65+ if (json["small_positive"] < 0) error("Value below minimum");
66+ if (json["small_positive"] > 100) error("Value above maximum");
5367 retval.small_positive = json["small_positive"];
5468 retval.unbounded = json["unbounded"];
Test case

test/inputs/schema/minmax-integer.schema

1 generated file · +10 −0
Mschema-pikedefault / TopLevel.pmod+10 −0
@@ -42,12 +42,22 @@ TopLevel TopLevel_from_JSON(mixed json) {
4242 TopLevel retval = TopLevel();
4343
4444 retval.free = json["free"];
45+ if (json["intersection"] < 4) error("Value below minimum");
46+ if (json["intersection"] > 5) error("Value above maximum");
4547 retval.intersection = json["intersection"];
48+ if (json["max"] > 5) error("Value above maximum");
4649 retval.max = json["max"];
50+ if (json["min"] < 3) error("Value below minimum");
4751 retval.min = json["min"];
52+ if (json["minmax"] < 3) error("Value below minimum");
53+ if (json["minmax"] > 5) error("Value above maximum");
4854 retval.minmax = json["minmax"];
55+ if (json["minMaxIntersection"] < 3) error("Value below minimum");
56+ if (json["minMaxIntersection"] > 5) error("Value above maximum");
4957 retval.min_max_intersection = json["minMaxIntersection"];
5058 retval.min_max_union = json["minMaxUnion"];
59+ if (json["union"] < 3) error("Value below minimum");
60+ if (json["union"] > 6) error("Value above maximum");
5161 retval.union = json["union"];
5262
5363 return retval;
Test case

test/inputs/schema/minmax.schema

1 generated file · +64 −0
Aschema-pikedefault / TopLevel.pmod+64 −0
@@ -0,0 +1,64 @@
1+// This source has been automatically generated by quicktype.
2+// ( https://github.com/quicktype/quicktype )
3+//
4+// To use this code, simply import it into your project as a Pike module.
5+// To JSON-encode your object, you can pass it to `Standards.JSON.encode`
6+// or call `encode_json` on it.
7+//
8+// To decode a JSON string, first pass it to `Standards.JSON.decode`,
9+// and then pass the result to `<YourClass>_from_JSON`.
10+// It will return an instance of <YourClass>.
11+// Bear in mind that these functions have unexpected behavior,
12+// and will likely throw an error, if the JSON string does not
13+// match the expected interface, even if the JSON itself is valid.
14+
15+class TopLevel {
16+ float free; // json: "free"
17+ float intersection; // json: "intersection"
18+ float max; // json: "max"
19+ float min; // json: "min"
20+ float minmax; // json: "minmax"
21+ float min_max_intersection; // json: "minMaxIntersection"
22+ float min_max_union; // json: "minMaxUnion"
23+ float union; // json: "union"
24+
25+ string encode_json() {
26+ mapping(string:mixed) json = ([
27+ "free" : free,
28+ "intersection" : intersection,
29+ "max" : max,
30+ "min" : min,
31+ "minmax" : minmax,
32+ "minMaxIntersection" : min_max_intersection,
33+ "minMaxUnion" : min_max_union,
34+ "union" : union,
35+ ]);
36+
37+ return Standards.JSON.encode(json);
38+ }
39+}
40+
41+TopLevel TopLevel_from_JSON(mixed json) {
42+ TopLevel retval = TopLevel();
43+
44+ retval.free = (float)json["free"];
45+ if (json["intersection"] < 4) error("Value below minimum");
46+ if (json["intersection"] > 5) error("Value above maximum");
47+ retval.intersection = (float)json["intersection"];
48+ if (json["max"] > 5) error("Value above maximum");
49+ retval.max = (float)json["max"];
50+ if (json["min"] < 3) error("Value below minimum");
51+ retval.min = (float)json["min"];
52+ if (json["minmax"] < 3) error("Value below minimum");
53+ if (json["minmax"] > 5) error("Value above maximum");
54+ retval.minmax = (float)json["minmax"];
55+ if (json["minMaxIntersection"] < 3) error("Value below minimum");
56+ if (json["minMaxIntersection"] > 5) error("Value above maximum");
57+ retval.min_max_intersection = (float)json["minMaxIntersection"];
58+ retval.min_max_union = (float)json["minMaxUnion"];
59+ if (json["union"] < 3) error("Value below minimum");
60+ if (json["union"] > 6) error("Value above maximum");
61+ retval.union = (float)json["union"];
62+
63+ return retval;
64+}
Test case

test/inputs/schema/minmaxlength.schema

1 generated file · +10 −0
Mschema-pikedefault / TopLevel.pmod+10 −0
@@ -41,14 +41,24 @@ class TopLevel {
4141 TopLevel TopLevel_from_JSON(mixed json) {
4242 TopLevel retval = TopLevel();
4343
44+ if (sizeof(json["intersection"]) < 4) error("String too short");
45+ if (sizeof(json["intersection"]) > 5) error("String too long");
4446 retval.intersection = json["intersection"];
4547 if (arrayp(json["inUnion"])) error("Unexpected array");
4648 retval.in_union = json["inUnion"];
49+ if (sizeof(json["maxlength"]) > 5) error("String too long");
4750 retval.maxlength = json["maxlength"];
51+ if (sizeof(json["minlength"]) < 3) error("String too short");
4852 retval.minlength = json["minlength"];
53+ if (sizeof(json["minMaxIntersection"]) < 3) error("String too short");
54+ if (sizeof(json["minMaxIntersection"]) > 5) error("String too long");
4955 retval.min_max_intersection = json["minMaxIntersection"];
56+ if (sizeof(json["minmaxlength"]) < 3) error("String too short");
57+ if (sizeof(json["minmaxlength"]) > 5) error("String too long");
5058 retval.minmaxlength = json["minmaxlength"];
5159 retval.min_max_union = json["minMaxUnion"];
60+ if (sizeof(json["union"]) < 3) error("String too short");
61+ if (sizeof(json["union"]) > 6) error("String too long");
5262 retval.union = json["union"];
5363
5464 return retval;
Test case

test/inputs/schema/optional-const-ref.schema

1 generated file · +10 −0
Mschema-pikedefault / TopLevel.pmod+10 −0
@@ -40,11 +40,21 @@ TopLevel TopLevel_from_JSON(mixed json) {
4040 TopLevel retval = TopLevel();
4141
4242 retval.coordinates = json["coordinates"];
43+ if (has_index(json, "count") && json["count"] < 1) error("Value below minimum");
44+ if (has_index(json, "count") && json["count"] > 100) error("Value above maximum");
4345 retval.count = json["count"];
46+ if (has_index(json, "label") && sizeof(json["label"]) < 2) error("String too short");
47+ if (has_index(json, "label") && sizeof(json["label"]) > 16) error("String too long");
4448 retval.label = json["label"];
4549 retval.required_coordinates = json["requiredCoordinates"];
50+ if (json["requiredCount"] < 1) error("Value below minimum");
51+ if (json["requiredCount"] > 100) error("Value above maximum");
4652 retval.required_count = json["requiredCount"];
53+ if (sizeof(json["requiredLabel"]) < 2) error("String too short");
54+ if (sizeof(json["requiredLabel"]) > 16) error("String too long");
4755 retval.required_label = json["requiredLabel"];
56+ if (has_index(json, "weight") && json["weight"] < 0.5) error("Value below minimum");
57+ if (has_index(json, "weight") && json["weight"] > 99.5) error("Value above maximum");
4858 retval.weight = json["weight"];
4959
5060 return retval;
Test case

test/inputs/schema/optional-constraints.schema

1 generated file · +8 −0
Mschema-pikedefault / TopLevel.pmod+8 −0
@@ -35,10 +35,18 @@ class TopLevel {
3535 TopLevel TopLevel_from_JSON(mixed json) {
3636 TopLevel retval = TopLevel();
3737
38+ if (has_index(json, "optDouble") && json["optDouble"] < 0.5) error("Value below minimum");
39+ if (has_index(json, "optDouble") && json["optDouble"] > 99.5) error("Value above maximum");
3840 retval.opt_double = json["optDouble"];
41+ if (has_index(json, "optInt") && json["optInt"] < 0) error("Value below minimum");
42+ if (has_index(json, "optInt") && json["optInt"] > 100) error("Value above maximum");
3943 retval.opt_int = json["optInt"];
4044 retval.opt_pattern = json["optPattern"];
45+ if (has_index(json, "optString") && sizeof(json["optString"]) < 3) error("String too short");
46+ if (has_index(json, "optString") && sizeof(json["optString"]) > 10) error("String too long");
4147 retval.opt_string = json["optString"];
48+ if (json["reqZeroMin"] < 0) error("Value below minimum");
49+ if (json["reqZeroMin"] > 100) error("Value above maximum");
4250 retval.req_zero_min = json["reqZeroMin"];
4351
4452 return retval;
Test case

test/inputs/schema/renaming-bug.schema

1 generated file · +2 −0
Mschema-pikedefault / TopLevel.pmod+2 −0
@@ -85,6 +85,7 @@ Berry Berry_from_JSON(mixed json) {
8585
8686 if (has_index(json, "color") && json["color"] != Val.null) Color_from_JSON(json["color"]);
8787 retval.color = json["color"];
88+ if (has_index(json, "name") && sizeof(json["name"]) < 1) error("String too short");
8889 retval.name = json["name"];
8990 retval.shapes = json["shapes"];
9091
@@ -272,6 +273,7 @@ Vehicle Vehicle_from_JSON(mixed json) {
272273 Vehicle retval = Vehicle();
273274
274275 retval.brand = json["brand"];
276+ if (has_index(json, "id") && sizeof(json["id"]) < 1) error("String too short");
275277 retval.id = json["id"];
276278 if (has_index(json, "speed") && json["speed"] != Val.null) Speed_from_JSON(json["speed"]);
277279 retval.speed = json["speed"];
Test case

test/inputs/schema/schema-constraints.schema

1 generated file · +4 −0
Mschema-pikedefault / TopLevel.pmod+4 −0
@@ -29,7 +29,11 @@ class TopLevel {
2929 TopLevel TopLevel_from_JSON(mixed json) {
3030 TopLevel retval = TopLevel();
3131
32+ if (sizeof(json["minMaxLength"]) < 5) error("String too short");
33+ if (sizeof(json["minMaxLength"]) > 5) error("String too long");
3234 retval.min_max_length = json["minMaxLength"];
35+ if (json["percent"] < 0) error("Value below minimum");
36+ if (json["percent"] > 1) error("Value above maximum");
3337 retval.percent = (float)json["percent"];
3438
3539 return retval;
Test case

test/inputs/schema/vega-lite.schema

1 generated file · +161 −0
Mschema-pikedefault / TopLevel.pmod+161 −0
@@ -418,6 +418,8 @@ MarkConfig MarkConfig_from_JSON(mixed json) {
418418 MarkConfig retval = MarkConfig();
419419
420420 retval.align = HorizontalAlign_from_JSON(json["align"]);
421+ if (has_index(json, "angle") && json["angle"] < 0) error("Value below minimum");
422+ if (has_index(json, "angle") && json["angle"] > 360) error("Value above maximum");
421423 retval.angle = json["angle"];
422424 retval.baseline = VerticalAlign_from_JSON(json["baseline"]);
423425 retval.color = json["color"];
@@ -426,8 +428,11 @@ MarkConfig MarkConfig_from_JSON(mixed json) {
426428 retval.dy = json["dy"];
427429 retval.fill = json["fill"];
428430 retval.filled = json["filled"];
431+ if (has_index(json, "fillOpacity") && json["fillOpacity"] < 0) error("Value below minimum");
432+ if (has_index(json, "fillOpacity") && json["fillOpacity"] > 1) error("Value above maximum");
429433 retval.fill_opacity = json["fillOpacity"];
430434 retval.font = json["font"];
435+ if (has_index(json, "fontSize") && json["fontSize"] < 0) error("Value below minimum");
431436 retval.font_size = json["fontSize"];
432437 retval.font_style = FontStyle_from_JSON(json["fontStyle"]);
433438 if (arrayp(json["fontWeight"])) error("Unexpected array");
@@ -435,16 +440,25 @@ MarkConfig MarkConfig_from_JSON(mixed json) {
435440 retval.href = json["href"];
436441 retval.interpolate = Interpolate_from_JSON(json["interpolate"]);
437442 retval.limit = json["limit"];
443+ if (has_index(json, "opacity") && json["opacity"] < 0) error("Value below minimum");
444+ if (has_index(json, "opacity") && json["opacity"] > 1) error("Value above maximum");
438445 retval.opacity = json["opacity"];
439446 retval.orient = Orient_from_JSON(json["orient"]);
447+ if (has_index(json, "radius") && json["radius"] < 0) error("Value below minimum");
440448 retval.radius = json["radius"];
441449 retval.shape = json["shape"];
450+ if (has_index(json, "size") && json["size"] < 0) error("Value below minimum");
442451 retval.size = json["size"];
443452 retval.stroke = json["stroke"];
444453 retval.stroke_dash = json["strokeDash"];
445454 retval.stroke_dash_offset = json["strokeDashOffset"];
455+ if (has_index(json, "strokeOpacity") && json["strokeOpacity"] < 0) error("Value below minimum");
456+ if (has_index(json, "strokeOpacity") && json["strokeOpacity"] > 1) error("Value above maximum");
446457 retval.stroke_opacity = json["strokeOpacity"];
458+ if (has_index(json, "strokeWidth") && json["strokeWidth"] < 0) error("Value below minimum");
447459 retval.stroke_width = json["strokeWidth"];
460+ if (has_index(json, "tension") && json["tension"] < 0) error("Value below minimum");
461+ if (has_index(json, "tension") && json["tension"] > 1) error("Value above maximum");
448462 retval.tension = json["tension"];
449463 retval.text = json["text"];
450464 retval.theta = json["theta"];
@@ -672,8 +686,13 @@ AxisConfig AxisConfig_from_JSON(mixed json) {
672686 retval.grid = json["grid"];
673687 retval.grid_color = json["gridColor"];
674688 retval.grid_dash = json["gridDash"];
689+ if (has_index(json, "gridOpacity") && json["gridOpacity"] < 0) error("Value below minimum");
690+ if (has_index(json, "gridOpacity") && json["gridOpacity"] > 1) error("Value above maximum");
675691 retval.grid_opacity = json["gridOpacity"];
692+ if (has_index(json, "gridWidth") && json["gridWidth"] < 0) error("Value below minimum");
676693 retval.grid_width = json["gridWidth"];
694+ if (has_index(json, "labelAngle") && json["labelAngle"] < -360) error("Value below minimum");
695+ if (has_index(json, "labelAngle") && json["labelAngle"] > 360) error("Value above maximum");
677696 retval.label_angle = json["labelAngle"];
678697 if (arrayp(json["labelBound"])) error("Unexpected array");
679698 retval.label_bound = json["labelBound"];
@@ -681,6 +700,7 @@ AxisConfig AxisConfig_from_JSON(mixed json) {
681700 if (arrayp(json["labelFlush"])) error("Unexpected array");
682701 retval.label_flush = json["labelFlush"];
683702 retval.label_font = json["labelFont"];
703+ if (has_index(json, "labelFontSize") && json["labelFontSize"] < 0) error("Value below minimum");
684704 retval.label_font_size = json["labelFontSize"];
685705 retval.label_limit = json["labelLimit"];
686706 if (arrayp(json["labelOverlap"])) error("Unexpected array");
@@ -693,13 +713,16 @@ AxisConfig AxisConfig_from_JSON(mixed json) {
693713 retval.tick_color = json["tickColor"];
694714 retval.tick_round = json["tickRound"];
695715 retval.ticks = json["ticks"];
716+ if (has_index(json, "tickSize") && json["tickSize"] < 0) error("Value below minimum");
696717 retval.tick_size = json["tickSize"];
718+ if (has_index(json, "tickWidth") && json["tickWidth"] < 0) error("Value below minimum");
697719 retval.tick_width = json["tickWidth"];
698720 retval.title_align = json["titleAlign"];
699721 retval.title_angle = json["titleAngle"];
700722 retval.title_baseline = json["titleBaseline"];
701723 retval.title_color = json["titleColor"];
702724 retval.title_font = json["titleFont"];
725+ if (has_index(json, "titleFontSize") && json["titleFontSize"] < 0) error("Value below minimum");
703726 retval.title_font_size = json["titleFontSize"];
704727 if (arrayp(json["titleFontWeight"])) error("Unexpected array");
705728 retval.title_font_weight = json["titleFontWeight"];
@@ -868,8 +891,13 @@ VgAxisConfig VgAxisConfig_from_JSON(mixed json) {
868891 retval.grid = json["grid"];
869892 retval.grid_color = json["gridColor"];
870893 retval.grid_dash = json["gridDash"];
894+ if (has_index(json, "gridOpacity") && json["gridOpacity"] < 0) error("Value below minimum");
895+ if (has_index(json, "gridOpacity") && json["gridOpacity"] > 1) error("Value above maximum");
871896 retval.grid_opacity = json["gridOpacity"];
897+ if (has_index(json, "gridWidth") && json["gridWidth"] < 0) error("Value below minimum");
872898 retval.grid_width = json["gridWidth"];
899+ if (has_index(json, "labelAngle") && json["labelAngle"] < -360) error("Value below minimum");
900+ if (has_index(json, "labelAngle") && json["labelAngle"] > 360) error("Value above maximum");
873901 retval.label_angle = json["labelAngle"];
874902 if (arrayp(json["labelBound"])) error("Unexpected array");
875903 retval.label_bound = json["labelBound"];
@@ -877,6 +905,7 @@ VgAxisConfig VgAxisConfig_from_JSON(mixed json) {
877905 if (arrayp(json["labelFlush"])) error("Unexpected array");
878906 retval.label_flush = json["labelFlush"];
879907 retval.label_font = json["labelFont"];
908+ if (has_index(json, "labelFontSize") && json["labelFontSize"] < 0) error("Value below minimum");
880909 retval.label_font_size = json["labelFontSize"];
881910 retval.label_limit = json["labelLimit"];
882911 if (arrayp(json["labelOverlap"])) error("Unexpected array");
@@ -888,13 +917,16 @@ VgAxisConfig VgAxisConfig_from_JSON(mixed json) {
888917 retval.tick_color = json["tickColor"];
889918 retval.tick_round = json["tickRound"];
890919 retval.ticks = json["ticks"];
920+ if (has_index(json, "tickSize") && json["tickSize"] < 0) error("Value below minimum");
891921 retval.tick_size = json["tickSize"];
922+ if (has_index(json, "tickWidth") && json["tickWidth"] < 0) error("Value below minimum");
892923 retval.tick_width = json["tickWidth"];
893924 retval.title_align = json["titleAlign"];
894925 retval.title_angle = json["titleAngle"];
895926 retval.title_baseline = json["titleBaseline"];
896927 retval.title_color = json["titleColor"];
897928 retval.title_font = json["titleFont"];
929+ if (has_index(json, "titleFontSize") && json["titleFontSize"] < 0) error("Value below minimum");
898930 retval.title_font_size = json["titleFontSize"];
899931 if (arrayp(json["titleFontWeight"])) error("Unexpected array");
900932 retval.title_font_weight = json["titleFontWeight"];
@@ -988,19 +1020,27 @@ BarConfig BarConfig_from_JSON(mixed json) {
9881020 BarConfig retval = BarConfig();
9891021
9901022 retval.align = HorizontalAlign_from_JSON(json["align"]);
1023+ if (has_index(json, "angle") && json["angle"] < 0) error("Value below minimum");
1024+ if (has_index(json, "angle") && json["angle"] > 360) error("Value above maximum");
9911025 retval.angle = json["angle"];
9921026 retval.baseline = VerticalAlign_from_JSON(json["baseline"]);
1027+ if (has_index(json, "binSpacing") && json["binSpacing"] < 0) error("Value below minimum");
9931028 retval.bin_spacing = json["binSpacing"];
9941029 retval.color = json["color"];
1030+ if (has_index(json, "continuousBandSize") && json["continuousBandSize"] < 0) error("Value below minimum");
9951031 retval.continuous_band_size = json["continuousBandSize"];
9961032 retval.cursor = Cursor_from_JSON(json["cursor"]);
1033+ if (has_index(json, "discreteBandSize") && json["discreteBandSize"] < 0) error("Value below minimum");
9971034 retval.discrete_band_size = json["discreteBandSize"];
9981035 retval.dx = json["dx"];
9991036 retval.dy = json["dy"];
10001037 retval.fill = json["fill"];
10011038 retval.filled = json["filled"];
1039+ if (has_index(json, "fillOpacity") && json["fillOpacity"] < 0) error("Value below minimum");
1040+ if (has_index(json, "fillOpacity") && json["fillOpacity"] > 1) error("Value above maximum");
10021041 retval.fill_opacity = json["fillOpacity"];
10031042 retval.font = json["font"];
1043+ if (has_index(json, "fontSize") && json["fontSize"] < 0) error("Value below minimum");
10041044 retval.font_size = json["fontSize"];
10051045 retval.font_style = FontStyle_from_JSON(json["fontStyle"]);
10061046 if (arrayp(json["fontWeight"])) error("Unexpected array");
@@ -1008,16 +1048,25 @@ BarConfig BarConfig_from_JSON(mixed json) {
10081048 retval.href = json["href"];
10091049 retval.interpolate = Interpolate_from_JSON(json["interpolate"]);
10101050 retval.limit = json["limit"];
1051+ if (has_index(json, "opacity") && json["opacity"] < 0) error("Value below minimum");
1052+ if (has_index(json, "opacity") && json["opacity"] > 1) error("Value above maximum");
10111053 retval.opacity = json["opacity"];
10121054 retval.orient = Orient_from_JSON(json["orient"]);
1055+ if (has_index(json, "radius") && json["radius"] < 0) error("Value below minimum");
10131056 retval.radius = json["radius"];
10141057 retval.shape = json["shape"];
1058+ if (has_index(json, "size") && json["size"] < 0) error("Value below minimum");
10151059 retval.size = json["size"];
10161060 retval.stroke = json["stroke"];
10171061 retval.stroke_dash = json["strokeDash"];
10181062 retval.stroke_dash_offset = json["strokeDashOffset"];
1063+ if (has_index(json, "strokeOpacity") && json["strokeOpacity"] < 0) error("Value below minimum");
1064+ if (has_index(json, "strokeOpacity") && json["strokeOpacity"] > 1) error("Value above maximum");
10191065 retval.stroke_opacity = json["strokeOpacity"];
1066+ if (has_index(json, "strokeWidth") && json["strokeWidth"] < 0) error("Value below minimum");
10201067 retval.stroke_width = json["strokeWidth"];
1068+ if (has_index(json, "tension") && json["tension"] < 0) error("Value below minimum");
1069+ if (has_index(json, "tension") && json["tension"] > 1) error("Value above maximum");
10211070 retval.tension = json["tension"];
10221071 retval.text = json["text"];
10231072 retval.theta = json["theta"];
@@ -1134,19 +1183,24 @@ LegendConfig LegendConfig_from_JSON(mixed json) {
11341183 retval.corner_radius = json["cornerRadius"];
11351184 retval.entry_padding = json["entryPadding"];
11361185 retval.fill_color = json["fillColor"];
1186+ if (has_index(json, "gradientHeight") && json["gradientHeight"] < 0) error("Value below minimum");
11371187 retval.gradient_height = json["gradientHeight"];
11381188 retval.gradient_label_baseline = json["gradientLabelBaseline"];
11391189 retval.gradient_label_limit = json["gradientLabelLimit"];
11401190 retval.gradient_label_offset = json["gradientLabelOffset"];
11411191 retval.gradient_stroke_color = json["gradientStrokeColor"];
1192+ if (has_index(json, "gradientStrokeWidth") && json["gradientStrokeWidth"] < 0) error("Value below minimum");
11421193 retval.gradient_stroke_width = json["gradientStrokeWidth"];
1194+ if (has_index(json, "gradientWidth") && json["gradientWidth"] < 0) error("Value below minimum");
11431195 retval.gradient_width = json["gradientWidth"];
11441196 retval.label_align = json["labelAlign"];
11451197 retval.label_baseline = json["labelBaseline"];
11461198 retval.label_color = json["labelColor"];
11471199 retval.label_font = json["labelFont"];
1200+ if (has_index(json, "labelFontSize") && json["labelFontSize"] < 0) error("Value below minimum");
11481201 retval.label_font_size = json["labelFontSize"];
11491202 retval.label_limit = json["labelLimit"];
1203+ if (has_index(json, "labelOffset") && json["labelOffset"] < 0) error("Value below minimum");
11501204 retval.label_offset = json["labelOffset"];
11511205 retval.offset = json["offset"];
11521206 retval.orient = LegendOrient_from_JSON(json["orient"]);
@@ -1156,7 +1210,9 @@ LegendConfig LegendConfig_from_JSON(mixed json) {
11561210 retval.stroke_dash = json["strokeDash"];
11571211 retval.stroke_width = json["strokeWidth"];
11581212 retval.symbol_color = json["symbolColor"];
1213+ if (has_index(json, "symbolSize") && json["symbolSize"] < 0) error("Value below minimum");
11591214 retval.symbol_size = json["symbolSize"];
1215+ if (has_index(json, "symbolStrokeWidth") && json["symbolStrokeWidth"] < 0) error("Value below minimum");
11601216 retval.symbol_stroke_width = json["symbolStrokeWidth"];
11611217 retval.symbol_type = json["symbolType"];
11621218 retval.title_align = json["titleAlign"];
@@ -1413,23 +1469,43 @@ class ScaleConfig {
14131469 ScaleConfig ScaleConfig_from_JSON(mixed json) {
14141470 ScaleConfig retval = ScaleConfig();
14151471
1472+ if (has_index(json, "bandPaddingInner") && json["bandPaddingInner"] < 0) error("Value below minimum");
1473+ if (has_index(json, "bandPaddingInner") && json["bandPaddingInner"] > 1) error("Value above maximum");
14161474 retval.band_padding_inner = json["bandPaddingInner"];
1475+ if (has_index(json, "bandPaddingOuter") && json["bandPaddingOuter"] < 0) error("Value below minimum");
1476+ if (has_index(json, "bandPaddingOuter") && json["bandPaddingOuter"] > 1) error("Value above maximum");
14171477 retval.band_padding_outer = json["bandPaddingOuter"];
14181478 retval.clamp = json["clamp"];
1479+ if (has_index(json, "continuousPadding") && json["continuousPadding"] < 0) error("Value below minimum");
14191480 retval.continuous_padding = json["continuousPadding"];
1481+ if (has_index(json, "maxBandSize") && json["maxBandSize"] < 0) error("Value below minimum");
14201482 retval.max_band_size = json["maxBandSize"];
1483+ if (has_index(json, "maxFontSize") && json["maxFontSize"] < 0) error("Value below minimum");
14211484 retval.max_font_size = json["maxFontSize"];
1485+ if (has_index(json, "maxOpacity") && json["maxOpacity"] < 0) error("Value below minimum");
1486+ if (has_index(json, "maxOpacity") && json["maxOpacity"] > 1) error("Value above maximum");
14221487 retval.max_opacity = json["maxOpacity"];
1488+ if (has_index(json, "maxSize") && json["maxSize"] < 0) error("Value below minimum");
14231489 retval.max_size = json["maxSize"];
1490+ if (has_index(json, "maxStrokeWidth") && json["maxStrokeWidth"] < 0) error("Value below minimum");
14241491 retval.max_stroke_width = json["maxStrokeWidth"];
1492+ if (has_index(json, "minBandSize") && json["minBandSize"] < 0) error("Value below minimum");
14251493 retval.min_band_size = json["minBandSize"];
1494+ if (has_index(json, "minFontSize") && json["minFontSize"] < 0) error("Value below minimum");
14261495 retval.min_font_size = json["minFontSize"];
1496+ if (has_index(json, "minOpacity") && json["minOpacity"] < 0) error("Value below minimum");
1497+ if (has_index(json, "minOpacity") && json["minOpacity"] > 1) error("Value above maximum");
14271498 retval.min_opacity = json["minOpacity"];
1499+ if (has_index(json, "minSize") && json["minSize"] < 0) error("Value below minimum");
14281500 retval.min_size = json["minSize"];
1501+ if (has_index(json, "minStrokeWidth") && json["minStrokeWidth"] < 0) error("Value below minimum");
14291502 retval.min_stroke_width = json["minStrokeWidth"];
1503+ if (has_index(json, "pointPadding") && json["pointPadding"] < 0) error("Value below minimum");
1504+ if (has_index(json, "pointPadding") && json["pointPadding"] > 1) error("Value above maximum");
14301505 retval.point_padding = json["pointPadding"];
14311506 retval.range_step = json["rangeStep"];
14321507 retval.round = json["round"];
1508+ if (has_index(json, "textXRangeStep") && json["textXRangeStep"] < 0) error("Value below minimum");
14331509 retval.text_x_range_step = json["textXRangeStep"];
14341510 retval.use_unaggregated_domain = json["useUnaggregatedDomain"];
14351511
@@ -1842,14 +1918,19 @@ VgMarkConfig VgMarkConfig_from_JSON(mixed json) {
18421918 VgMarkConfig retval = VgMarkConfig();
18431919
18441920 retval.align = HorizontalAlign_from_JSON(json["align"]);
1921+ if (has_index(json, "angle") && json["angle"] < 0) error("Value below minimum");
1922+ if (has_index(json, "angle") && json["angle"] > 360) error("Value above maximum");
18451923 retval.angle = json["angle"];
18461924 retval.baseline = VerticalAlign_from_JSON(json["baseline"]);
18471925 retval.cursor = Cursor_from_JSON(json["cursor"]);
18481926 retval.dx = json["dx"];
18491927 retval.dy = json["dy"];
18501928 retval.fill = json["fill"];
1929+ if (has_index(json, "fillOpacity") && json["fillOpacity"] < 0) error("Value below minimum");
1930+ if (has_index(json, "fillOpacity") && json["fillOpacity"] > 1) error("Value above maximum");
18511931 retval.fill_opacity = json["fillOpacity"];
18521932 retval.font = json["font"];
1933+ if (has_index(json, "fontSize") && json["fontSize"] < 0) error("Value below minimum");
18531934 retval.font_size = json["fontSize"];
18541935 retval.font_style = FontStyle_from_JSON(json["fontStyle"]);
18551936 if (arrayp(json["fontWeight"])) error("Unexpected array");
@@ -1857,16 +1938,25 @@ VgMarkConfig VgMarkConfig_from_JSON(mixed json) {
18571938 retval.href = json["href"];
18581939 retval.interpolate = Interpolate_from_JSON(json["interpolate"]);
18591940 retval.limit = json["limit"];
1941+ if (has_index(json, "opacity") && json["opacity"] < 0) error("Value below minimum");
1942+ if (has_index(json, "opacity") && json["opacity"] > 1) error("Value above maximum");
18601943 retval.opacity = json["opacity"];
18611944 retval.orient = Orient_from_JSON(json["orient"]);
1945+ if (has_index(json, "radius") && json["radius"] < 0) error("Value below minimum");
18621946 retval.radius = json["radius"];
18631947 retval.shape = json["shape"];
1948+ if (has_index(json, "size") && json["size"] < 0) error("Value below minimum");
18641949 retval.size = json["size"];
18651950 retval.stroke = json["stroke"];
18661951 retval.stroke_dash = json["strokeDash"];
18671952 retval.stroke_dash_offset = json["strokeDashOffset"];
1953+ if (has_index(json, "strokeOpacity") && json["strokeOpacity"] < 0) error("Value below minimum");
1954+ if (has_index(json, "strokeOpacity") && json["strokeOpacity"] > 1) error("Value above maximum");
18681955 retval.stroke_opacity = json["strokeOpacity"];
1956+ if (has_index(json, "strokeWidth") && json["strokeWidth"] < 0) error("Value below minimum");
18691957 retval.stroke_width = json["strokeWidth"];
1958+ if (has_index(json, "tension") && json["tension"] < 0) error("Value below minimum");
1959+ if (has_index(json, "tension") && json["tension"] > 1) error("Value above maximum");
18701960 retval.tension = json["tension"];
18711961 retval.text = json["text"];
18721962 retval.theta = json["theta"];
@@ -1951,6 +2041,8 @@ TextConfig TextConfig_from_JSON(mixed json) {
19512041 TextConfig retval = TextConfig();
19522042
19532043 retval.align = HorizontalAlign_from_JSON(json["align"]);
2044+ if (has_index(json, "angle") && json["angle"] < 0) error("Value below minimum");
2045+ if (has_index(json, "angle") && json["angle"] > 360) error("Value above maximum");
19542046 retval.angle = json["angle"];
19552047 retval.baseline = VerticalAlign_from_JSON(json["baseline"]);
19562048 retval.color = json["color"];
@@ -1959,8 +2051,11 @@ TextConfig TextConfig_from_JSON(mixed json) {
19592051 retval.dy = json["dy"];
19602052 retval.fill = json["fill"];
19612053 retval.filled = json["filled"];
2054+ if (has_index(json, "fillOpacity") && json["fillOpacity"] < 0) error("Value below minimum");
2055+ if (has_index(json, "fillOpacity") && json["fillOpacity"] > 1) error("Value above maximum");
19622056 retval.fill_opacity = json["fillOpacity"];
19632057 retval.font = json["font"];
2058+ if (has_index(json, "fontSize") && json["fontSize"] < 0) error("Value below minimum");
19642059 retval.font_size = json["fontSize"];
19652060 retval.font_style = FontStyle_from_JSON(json["fontStyle"]);
19662061 if (arrayp(json["fontWeight"])) error("Unexpected array");
@@ -1968,17 +2063,26 @@ TextConfig TextConfig_from_JSON(mixed json) {
19682063 retval.href = json["href"];
19692064 retval.interpolate = Interpolate_from_JSON(json["interpolate"]);
19702065 retval.limit = json["limit"];
2066+ if (has_index(json, "opacity") && json["opacity"] < 0) error("Value below minimum");
2067+ if (has_index(json, "opacity") && json["opacity"] > 1) error("Value above maximum");
19712068 retval.opacity = json["opacity"];
19722069 retval.orient = Orient_from_JSON(json["orient"]);
2070+ if (has_index(json, "radius") && json["radius"] < 0) error("Value below minimum");
19732071 retval.radius = json["radius"];
19742072 retval.shape = json["shape"];
19752073 retval.short_time_labels = json["shortTimeLabels"];
2074+ if (has_index(json, "size") && json["size"] < 0) error("Value below minimum");
19762075 retval.size = json["size"];
19772076 retval.stroke = json["stroke"];
19782077 retval.stroke_dash = json["strokeDash"];
19792078 retval.stroke_dash_offset = json["strokeDashOffset"];
2079+ if (has_index(json, "strokeOpacity") && json["strokeOpacity"] < 0) error("Value below minimum");
2080+ if (has_index(json, "strokeOpacity") && json["strokeOpacity"] > 1) error("Value above maximum");
19802081 retval.stroke_opacity = json["strokeOpacity"];
2082+ if (has_index(json, "strokeWidth") && json["strokeWidth"] < 0) error("Value below minimum");
19812083 retval.stroke_width = json["strokeWidth"];
2084+ if (has_index(json, "tension") && json["tension"] < 0) error("Value below minimum");
2085+ if (has_index(json, "tension") && json["tension"] > 1) error("Value above maximum");
19822086 retval.tension = json["tension"];
19832087 retval.text = json["text"];
19842088 retval.theta = json["theta"];
@@ -2065,7 +2169,10 @@ TickConfig TickConfig_from_JSON(mixed json) {
20652169 TickConfig retval = TickConfig();
20662170
20672171 retval.align = HorizontalAlign_from_JSON(json["align"]);
2172+ if (has_index(json, "angle") && json["angle"] < 0) error("Value below minimum");
2173+ if (has_index(json, "angle") && json["angle"] > 360) error("Value above maximum");
20682174 retval.angle = json["angle"];
2175+ if (has_index(json, "bandSize") && json["bandSize"] < 0) error("Value below minimum");
20692176 retval.band_size = json["bandSize"];
20702177 retval.baseline = VerticalAlign_from_JSON(json["baseline"]);
20712178 retval.color = json["color"];
@@ -2074,8 +2181,11 @@ TickConfig TickConfig_from_JSON(mixed json) {
20742181 retval.dy = json["dy"];
20752182 retval.fill = json["fill"];
20762183 retval.filled = json["filled"];
2184+ if (has_index(json, "fillOpacity") && json["fillOpacity"] < 0) error("Value below minimum");
2185+ if (has_index(json, "fillOpacity") && json["fillOpacity"] > 1) error("Value above maximum");
20772186 retval.fill_opacity = json["fillOpacity"];
20782187 retval.font = json["font"];
2188+ if (has_index(json, "fontSize") && json["fontSize"] < 0) error("Value below minimum");
20792189 retval.font_size = json["fontSize"];
20802190 retval.font_style = FontStyle_from_JSON(json["fontStyle"]);
20812191 if (arrayp(json["fontWeight"])) error("Unexpected array");
@@ -2083,19 +2193,29 @@ TickConfig TickConfig_from_JSON(mixed json) {
20832193 retval.href = json["href"];
20842194 retval.interpolate = Interpolate_from_JSON(json["interpolate"]);
20852195 retval.limit = json["limit"];
2196+ if (has_index(json, "opacity") && json["opacity"] < 0) error("Value below minimum");
2197+ if (has_index(json, "opacity") && json["opacity"] > 1) error("Value above maximum");
20862198 retval.opacity = json["opacity"];
20872199 retval.orient = Orient_from_JSON(json["orient"]);
2200+ if (has_index(json, "radius") && json["radius"] < 0) error("Value below minimum");
20882201 retval.radius = json["radius"];
20892202 retval.shape = json["shape"];
2203+ if (has_index(json, "size") && json["size"] < 0) error("Value below minimum");
20902204 retval.size = json["size"];
20912205 retval.stroke = json["stroke"];
20922206 retval.stroke_dash = json["strokeDash"];
20932207 retval.stroke_dash_offset = json["strokeDashOffset"];
2208+ if (has_index(json, "strokeOpacity") && json["strokeOpacity"] < 0) error("Value below minimum");
2209+ if (has_index(json, "strokeOpacity") && json["strokeOpacity"] > 1) error("Value above maximum");
20942210 retval.stroke_opacity = json["strokeOpacity"];
2211+ if (has_index(json, "strokeWidth") && json["strokeWidth"] < 0) error("Value below minimum");
20952212 retval.stroke_width = json["strokeWidth"];
2213+ if (has_index(json, "tension") && json["tension"] < 0) error("Value below minimum");
2214+ if (has_index(json, "tension") && json["tension"] > 1) error("Value above maximum");
20962215 retval.tension = json["tension"];
20972216 retval.text = json["text"];
20982217 retval.theta = json["theta"];
2218+ if (has_index(json, "thickness") && json["thickness"] < 0) error("Value below minimum");
20992219 retval.thickness = json["thickness"];
21002220
21012221 return retval;
@@ -2142,9 +2262,11 @@ VgTitleConfig VgTitleConfig_from_JSON(mixed json) {
21422262 retval.baseline = VerticalAlign_from_JSON(json["baseline"]);
21432263 retval.color = json["color"];
21442264 retval.font = json["font"];
2265+ if (has_index(json, "fontSize") && json["fontSize"] < 0) error("Value below minimum");
21452266 retval.font_size = json["fontSize"];
21462267 if (arrayp(json["fontWeight"])) error("Unexpected array");
21472268 retval.font_weight = json["fontWeight"];
2269+ if (has_index(json, "limit") && json["limit"] < 0) error("Value below minimum");
21482270 retval.limit = json["limit"];
21492271 retval.offset = json["offset"];
21502272 retval.orient = TitleOrient_from_JSON(json["orient"]);
@@ -2570,6 +2692,7 @@ BinParams BinParams_from_JSON(mixed json) {
25702692 retval.base = json["base"];
25712693 retval.divide = json["divide"];
25722694 retval.extent = json["extent"];
2695+ if (has_index(json, "maxbins") && json["maxbins"] < 2) error("Value below minimum");
25732696 retval.maxbins = json["maxbins"];
25742697 retval.minstep = json["minstep"];
25752698 retval.nice = json["nice"];
@@ -2780,15 +2903,27 @@ class DateTime {
27802903 DateTime DateTime_from_JSON(mixed json) {
27812904 DateTime retval = DateTime();
27822905
2906+ if (has_index(json, "date") && json["date"] < 1) error("Value below minimum");
2907+ if (has_index(json, "date") && json["date"] > 31) error("Value above maximum");
27832908 retval.date = json["date"];
27842909 if (arrayp(json["day"])) error("Unexpected array");
27852910 retval.day = json["day"];
2911+ if (has_index(json, "hours") && json["hours"] < 0) error("Value below minimum");
2912+ if (has_index(json, "hours") && json["hours"] > 23) error("Value above maximum");
27862913 retval.hours = json["hours"];
2914+ if (has_index(json, "milliseconds") && json["milliseconds"] < 0) error("Value below minimum");
2915+ if (has_index(json, "milliseconds") && json["milliseconds"] > 999) error("Value above maximum");
27872916 retval.milliseconds = json["milliseconds"];
2917+ if (has_index(json, "minutes") && json["minutes"] < 0) error("Value below minimum");
2918+ if (has_index(json, "minutes") && json["minutes"] > 59) error("Value above maximum");
27882919 retval.minutes = json["minutes"];
27892920 if (arrayp(json["month"])) error("Unexpected array");
27902921 retval.month = json["month"];
2922+ if (has_index(json, "quarter") && json["quarter"] < 1) error("Value below minimum");
2923+ if (has_index(json, "quarter") && json["quarter"] > 4) error("Value above maximum");
27912924 retval.quarter = json["quarter"];
2925+ if (has_index(json, "seconds") && json["seconds"] < 0) error("Value below minimum");
2926+ if (has_index(json, "seconds") && json["seconds"] > 59) error("Value above maximum");
27922927 retval.seconds = json["seconds"];
27932928 retval.utc = json["utc"];
27942929 retval.year = json["year"];
@@ -3027,6 +3162,7 @@ Legend Legend_from_JSON(mixed json) {
30273162 retval.title = json["title"];
30283163 retval.type = LegendType_from_JSON(json["type"]);
30293164 retval.values = json["values"];
3165+ if (has_index(json, "zindex") && json["zindex"] < 0) error("Value below minimum");
30303166 retval.zindex = json["zindex"];
30313167
30323168 return retval;
@@ -3103,8 +3239,13 @@ Scale Scale_from_JSON(mixed json) {
31033239 retval.interpolate = json["interpolate"];
31043240 if (arrayp(json["nice"])) error("Unexpected array");
31053241 retval.nice = json["nice"];
3242+ if (has_index(json, "padding") && json["padding"] < 0) error("Value below minimum");
31063243 retval.padding = json["padding"];
3244+ if (has_index(json, "paddingInner") && json["paddingInner"] < 0) error("Value below minimum");
3245+ if (has_index(json, "paddingInner") && json["paddingInner"] > 1) error("Value above maximum");
31073246 retval.padding_inner = json["paddingInner"];
3247+ if (has_index(json, "paddingOuter") && json["paddingOuter"] < 0) error("Value below minimum");
3248+ if (has_index(json, "paddingOuter") && json["paddingOuter"] > 1) error("Value above maximum");
31083249 retval.padding_outer = json["paddingOuter"];
31093250 retval.range = json["range"];
31103251 retval.range_step = json["rangeStep"];
@@ -3505,6 +3646,8 @@ Header Header_from_JSON(mixed json) {
35053646 Header retval = Header();
35063647
35073648 retval.format = json["format"];
3649+ if (has_index(json, "labelAngle") && json["labelAngle"] < -360) error("Value below minimum");
3650+ if (has_index(json, "labelAngle") && json["labelAngle"] > 360) error("Value above maximum");
35083651 retval.label_angle = json["labelAngle"];
35093652 retval.title = json["title"];
35103653
@@ -3935,6 +4078,8 @@ Axis Axis_from_JSON(mixed json) {
39354078 retval.domain = json["domain"];
39364079 retval.format = json["format"];
39374080 retval.grid = json["grid"];
4081+ if (has_index(json, "labelAngle") && json["labelAngle"] < -360) error("Value below minimum");
4082+ if (has_index(json, "labelAngle") && json["labelAngle"] > 360) error("Value above maximum");
39384083 retval.label_angle = json["labelAngle"];
39394084 if (arrayp(json["labelBound"])) error("Unexpected array");
39404085 retval.label_bound = json["labelBound"];
@@ -3951,11 +4096,13 @@ Axis Axis_from_JSON(mixed json) {
39514096 retval.position = json["position"];
39524097 retval.tick_count = json["tickCount"];
39534098 retval.ticks = json["ticks"];
4099+ if (has_index(json, "tickSize") && json["tickSize"] < 0) error("Value below minimum");
39544100 retval.tick_size = json["tickSize"];
39554101 retval.title = json["title"];
39564102 retval.title_max_length = json["titleMaxLength"];
39574103 retval.title_padding = json["titlePadding"];
39584104 retval.values = json["values"];
4105+ if (has_index(json, "zindex") && json["zindex"] < 0) error("Value below minimum");
39594106 retval.zindex = json["zindex"];
39604107
39614108 return retval;
@@ -4341,6 +4488,8 @@ MarkDef MarkDef_from_JSON(mixed json) {
43414488 MarkDef retval = MarkDef();
43424489
43434490 retval.align = HorizontalAlign_from_JSON(json["align"]);
4491+ if (has_index(json, "angle") && json["angle"] < 0) error("Value below minimum");
4492+ if (has_index(json, "angle") && json["angle"] > 360) error("Value above maximum");
43444493 retval.angle = json["angle"];
43454494 retval.baseline = VerticalAlign_from_JSON(json["baseline"]);
43464495 retval.clip = json["clip"];
@@ -4350,8 +4499,11 @@ MarkDef MarkDef_from_JSON(mixed json) {
43504499 retval.dy = json["dy"];
43514500 retval.fill = json["fill"];
43524501 retval.filled = json["filled"];
4502+ if (has_index(json, "fillOpacity") && json["fillOpacity"] < 0) error("Value below minimum");
4503+ if (has_index(json, "fillOpacity") && json["fillOpacity"] > 1) error("Value above maximum");
43534504 retval.fill_opacity = json["fillOpacity"];
43544505 retval.font = json["font"];
4506+ if (has_index(json, "fontSize") && json["fontSize"] < 0) error("Value below minimum");
43554507 retval.font_size = json["fontSize"];
43564508 retval.font_style = FontStyle_from_JSON(json["fontStyle"]);
43574509 if (arrayp(json["fontWeight"])) error("Unexpected array");
@@ -4359,17 +4511,26 @@ MarkDef MarkDef_from_JSON(mixed json) {
43594511 retval.href = json["href"];
43604512 retval.interpolate = Interpolate_from_JSON(json["interpolate"]);
43614513 retval.limit = json["limit"];
4514+ if (has_index(json, "opacity") && json["opacity"] < 0) error("Value below minimum");
4515+ if (has_index(json, "opacity") && json["opacity"] > 1) error("Value above maximum");
43624516 retval.opacity = json["opacity"];
43634517 retval.orient = Orient_from_JSON(json["orient"]);
4518+ if (has_index(json, "radius") && json["radius"] < 0) error("Value below minimum");
43644519 retval.radius = json["radius"];
43654520 retval.shape = json["shape"];
4521+ if (has_index(json, "size") && json["size"] < 0) error("Value below minimum");
43664522 retval.size = json["size"];
43674523 retval.stroke = json["stroke"];
43684524 retval.stroke_dash = json["strokeDash"];
43694525 retval.stroke_dash_offset = json["strokeDashOffset"];
4526+ if (has_index(json, "strokeOpacity") && json["strokeOpacity"] < 0) error("Value below minimum");
4527+ if (has_index(json, "strokeOpacity") && json["strokeOpacity"] > 1) error("Value above maximum");
43704528 retval.stroke_opacity = json["strokeOpacity"];
4529+ if (has_index(json, "strokeWidth") && json["strokeWidth"] < 0) error("Value below minimum");
43714530 retval.stroke_width = json["strokeWidth"];
43724531 retval.style = json["style"];
4532+ if (has_index(json, "tension") && json["tension"] < 0) error("Value below minimum");
4533+ if (has_index(json, "tension") && json["tension"] > 1) error("Value above maximum");
43734534 retval.tension = json["tension"];
43744535 retval.text = json["text"];
43754536 retval.theta = json["theta"];
No generated files match these filters.