Generated-output differences

quicktype output changed between the PR base and tested PR merge revisions.
← Back to the pull request
36test cases
36files differ
35modified
1new
0deleted
4,867changed lines
+4,299 −568insertions / deletions
Base 66df8a7480383ad7d4784464b395df83fd482c7f · PR merge a490f38abf784e60dfec71d27c47a1fe690da1ba · Head 7a912b54aa733ae5f35b842feb4917bd71216025 · raw patch
Test case

test/inputs/dart/object-member-names.schema

1 generated file · +37 −0
Aschema-dartdefault / TopLevel.dart+37 −0
@@ -0,0 +1,37 @@
1+// To parse this JSON data, do
2+//
3+// final topLevel = topLevelFromJson(jsonString);
4+
5+import 'dart:convert';
6+
7+TopLevel topLevelFromJson(String str) => TopLevel.fromJson(json.decode(str));
8+
9+String topLevelToJson(TopLevel data) => json.encode(data.toJson());
10+
11+class TopLevel {
12+ final String topLevelHashCode;
13+ final String topLevelNoSuchMethod;
14+ final int topLevelRuntimeType;
15+ final bool topLevelToString;
16+
17+ TopLevel({
18+ required this.topLevelHashCode,
19+ required this.topLevelNoSuchMethod,
20+ required this.topLevelRuntimeType,
21+ required this.topLevelToString,
22+ });
23+
24+ factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel(
25+ topLevelHashCode: json["hashCode"],
26+ topLevelNoSuchMethod: json["noSuchMethod"],
27+ topLevelRuntimeType: json["runtimeType"],
28+ topLevelToString: json["toString"],
29+ );
30+
31+ Map<String, dynamic> toJson() => {
32+ "hashCode": topLevelHashCode,
33+ "noSuchMethod": topLevelNoSuchMethod,
34+ "runtimeType": topLevelRuntimeType,
35+ "toString": topLevelToString,
36+ };
37+}
Test case

test/inputs/json/misc/0a91a.json

1 generated file · +28 −4
Melixirdefault / QuickType.ex+28 −4
@@ -1591,6 +1591,12 @@ defmodule Payload do
15911591 def encode_before(value) when is_binary(value), do: value
15921592 def encode_before(_), do: {:error, "Unexpected type when encoding Payload.before"}
15931593
1594+ def decode_distinct_size(value) when is_integer(value), do: value
1595+ def decode_distinct_size(_), do: {:error, "Unexpected type when decoding Payload.distinct_size"}
1596+
1597+ def encode_distinct_size(value) when is_integer(value), do: value
1598+ def encode_distinct_size(_), do: {:error, "Unexpected type when encoding Payload.distinct_size"}
1599+
15941600 def decode_head(value) when is_binary(value), do: value
15951601 def decode_head(_), do: {:error, "Unexpected type when decoding Payload.head"}
15961602
@@ -1603,6 +1609,18 @@ defmodule Payload do
16031609 def encode_master_branch(value) when is_binary(value), do: value
16041610 def encode_master_branch(_), do: {:error, "Unexpected type when encoding Payload.master_branch"}
16051611
1612+ def decode_number(value) when is_integer(value), do: value
1613+ def decode_number(_), do: {:error, "Unexpected type when decoding Payload.number"}
1614+
1615+ def encode_number(value) when is_integer(value), do: value
1616+ def encode_number(_), do: {:error, "Unexpected type when encoding Payload.number"}
1617+
1618+ def decode_push_id(value) when is_integer(value), do: value
1619+ def decode_push_id(_), do: {:error, "Unexpected type when decoding Payload.push_id"}
1620+
1621+ def encode_push_id(value) when is_integer(value), do: value
1622+ def encode_push_id(_), do: {:error, "Unexpected type when encoding Payload.push_id"}
1623+
16061624 def decode_pusher_type(value) when is_binary(value), do: value
16071625 def decode_pusher_type(_), do: {:error, "Unexpected type when decoding Payload.pusher_type"}
16081626
@@ -1621,22 +1639,28 @@ defmodule Payload do
16211639 def encode_ref_type(value) when is_binary(value), do: value
16221640 def encode_ref_type(_), do: {:error, "Unexpected type when encoding Payload.ref_type"}
16231641
1642+ def decode_size(value) when is_integer(value), do: value
1643+ def decode_size(_), do: {:error, "Unexpected type when decoding Payload.size"}
1644+
1645+ def encode_size(value) when is_integer(value), do: value
1646+ def encode_size(_), do: {:error, "Unexpected type when encoding Payload.size"}
1647+
16241648 def from_map(m) do
16251649 %Payload{
16261650 action: m["action"] && decode_action(m["action"]),
16271651 before: m["before"] && decode_before(m["before"]),
16281652 commits: m["commits"] && Enum.map(m["commits"], &Commit.from_map/1),
16291653 description: m["description"],
1630- distinct_size: m["distinct_size"],
1654+ distinct_size: m["distinct_size"] && decode_distinct_size(m["distinct_size"]),
16311655 head: m["head"] && decode_head(m["head"]),
16321656 master_branch: m["master_branch"] && decode_master_branch(m["master_branch"]),
1633- number: m["number"],
1657+ number: m["number"] && decode_number(m["number"]),
16341658 pull_request: m["pull_request"] && PullRequest.from_map(m["pull_request"]),
1635- push_id: m["push_id"],
1659+ push_id: m["push_id"] && decode_push_id(m["push_id"]),
16361660 pusher_type: m["pusher_type"] && decode_pusher_type(m["pusher_type"]),
16371661 ref: m["ref"] && decode_ref(m["ref"]),
16381662 ref_type: m["ref_type"] && decode_ref_type(m["ref_type"]),
1639- size: m["size"],
1663+ size: m["size"] && decode_size(m["size"]),
16401664 }
16411665 end
Test case

test/inputs/json/misc/26c9c.json

1 generated file · +14 −2
Melixirdefault / QuickType.ex+14 −2
@@ -265,6 +265,18 @@ defmodule Column do
265265 def encode_render_type_name(value) when is_binary(value), do: value
266266 def encode_render_type_name(_), do: {:error, "Unexpected type when encoding Column.render_type_name"}
267267
268+ def decode_table_column_id(value) when is_integer(value), do: value
269+ def decode_table_column_id(_), do: {:error, "Unexpected type when decoding Column.table_column_id"}
270+
271+ def encode_table_column_id(value) when is_integer(value), do: value
272+ def encode_table_column_id(_), do: {:error, "Unexpected type when encoding Column.table_column_id"}
273+
274+ def decode_width(value) when is_integer(value), do: value
275+ def decode_width(_), do: {:error, "Unexpected type when decoding Column.width"}
276+
277+ def encode_width(value) when is_integer(value), do: value
278+ def encode_width(_), do: {:error, "Unexpected type when encoding Column.width"}
279+
268280 def from_map(m) do
269281 %Column{
270282 cached_contents: m["cachedContents"] && CachedContents.from_map(m["cachedContents"]),
@@ -276,8 +288,8 @@ defmodule Column do
276288 name: decode_name(m["name"]),
277289 position: decode_position(m["position"]),
278290 render_type_name: decode_render_type_name(m["renderTypeName"]),
279- table_column_id: m["tableColumnId"],
280- width: m["width"],
291+ table_column_id: m["tableColumnId"] && decode_table_column_id(m["tableColumnId"]),
292+ width: m["width"] && decode_width(m["width"]),
281293 }
282294 end
Test case

test/inputs/json/misc/27332.json

1 generated file · +14 −2
Melixirdefault / QuickType.ex+14 −2
@@ -243,12 +243,24 @@ defmodule MediaEmbed do
243243 def encode_content(value) when is_binary(value), do: value
244244 def encode_content(_), do: {:error, "Unexpected type when encoding MediaEmbed.content"}
245245
246+ def decode_height(value) when is_integer(value), do: value
247+ def decode_height(_), do: {:error, "Unexpected type when decoding MediaEmbed.height"}
248+
249+ def encode_height(value) when is_integer(value), do: value
250+ def encode_height(_), do: {:error, "Unexpected type when encoding MediaEmbed.height"}
251+
252+ def decode_width(value) when is_integer(value), do: value
253+ def decode_width(_), do: {:error, "Unexpected type when decoding MediaEmbed.width"}
254+
255+ def encode_width(value) when is_integer(value), do: value
256+ def encode_width(_), do: {:error, "Unexpected type when encoding MediaEmbed.width"}
257+
246258 def from_map(m) do
247259 %MediaEmbed{
248260 content: m["content"] && decode_content(m["content"]),
249- height: m["height"],
261+ height: m["height"] && decode_height(m["height"]),
250262 scrolling: m["scrolling"],
251- width: m["width"],
263+ width: m["width"] && decode_width(m["width"]),
252264 }
253265 end
Test case

test/inputs/json/misc/31189.json

1 generated file · +45 −5
Melixirdefault / QuickType.ex+45 −5
@@ -18,6 +18,38 @@ defmodule Rates do
1818 super_reduced: float() | nil
1919 }
2020
21+ def decode_parking(value) when is_float(value), do: value
22+ def decode_parking(value) when is_integer(value), do: value
23+ def decode_parking(_), do: {:error, "Unexpected type when decoding Rates.parking"}
24+
25+ def encode_parking(value) when is_float(value), do: value
26+ def encode_parking(value) when is_integer(value), do: value
27+ def encode_parking(_), do: {:error, "Unexpected type when encoding Rates.parking"}
28+
29+ def decode_reduced(value) when is_float(value), do: value
30+ def decode_reduced(value) when is_integer(value), do: value
31+ def decode_reduced(_), do: {:error, "Unexpected type when decoding Rates.reduced"}
32+
33+ def encode_reduced(value) when is_float(value), do: value
34+ def encode_reduced(value) when is_integer(value), do: value
35+ def encode_reduced(_), do: {:error, "Unexpected type when encoding Rates.reduced"}
36+
37+ def decode_reduced1(value) when is_float(value), do: value
38+ def decode_reduced1(value) when is_integer(value), do: value
39+ def decode_reduced1(_), do: {:error, "Unexpected type when decoding Rates.reduced1"}
40+
41+ def encode_reduced1(value) when is_float(value), do: value
42+ def encode_reduced1(value) when is_integer(value), do: value
43+ def encode_reduced1(_), do: {:error, "Unexpected type when encoding Rates.reduced1"}
44+
45+ def decode_reduced2(value) when is_float(value), do: value
46+ def decode_reduced2(value) when is_integer(value), do: value
47+ def decode_reduced2(_), do: {:error, "Unexpected type when decoding Rates.reduced2"}
48+
49+ def encode_reduced2(value) when is_float(value), do: value
50+ def encode_reduced2(value) when is_integer(value), do: value
51+ def encode_reduced2(_), do: {:error, "Unexpected type when encoding Rates.reduced2"}
52+
2153 def decode_standard(value) when is_float(value), do: value
2254 def decode_standard(value) when is_integer(value), do: value
2355 def decode_standard(_), do: {:error, "Unexpected type when decoding Rates.standard"}
@@ -26,14 +58,22 @@ defmodule Rates do
2658 def encode_standard(value) when is_integer(value), do: value
2759 def encode_standard(_), do: {:error, "Unexpected type when encoding Rates.standard"}
2860
61+ def decode_super_reduced(value) when is_float(value), do: value
62+ def decode_super_reduced(value) when is_integer(value), do: value
63+ def decode_super_reduced(_), do: {:error, "Unexpected type when decoding Rates.super_reduced"}
64+
65+ def encode_super_reduced(value) when is_float(value), do: value
66+ def encode_super_reduced(value) when is_integer(value), do: value
67+ def encode_super_reduced(_), do: {:error, "Unexpected type when encoding Rates.super_reduced"}
68+
2969 def from_map(m) do
3070 %Rates{
31- parking: m["parking"],
32- reduced: m["reduced"],
33- reduced1: m["reduced1"],
34- reduced2: m["reduced2"],
71+ parking: m["parking"] && decode_parking(m["parking"]),
72+ reduced: m["reduced"] && decode_reduced(m["reduced"]),
73+ reduced1: m["reduced1"] && decode_reduced1(m["reduced1"]),
74+ reduced2: m["reduced2"] && decode_reduced2(m["reduced2"]),
3575 standard: decode_standard(m["standard"]),
36- super_reduced: m["super_reduced"],
76+ super_reduced: m["super_reduced"] && decode_super_reduced(m["super_reduced"]),
3777 }
3878 end
Test case

test/inputs/json/misc/421d4.json

1 generated file · +14 −2
Melixirdefault / QuickType.ex+14 −2
@@ -223,6 +223,18 @@ defmodule Column do
223223 def encode_render_type_name(value) when is_binary(value), do: value
224224 def encode_render_type_name(_), do: {:error, "Unexpected type when encoding Column.render_type_name"}
225225
226+ def decode_table_column_id(value) when is_integer(value), do: value
227+ def decode_table_column_id(_), do: {:error, "Unexpected type when decoding Column.table_column_id"}
228+
229+ def encode_table_column_id(value) when is_integer(value), do: value
230+ def encode_table_column_id(_), do: {:error, "Unexpected type when encoding Column.table_column_id"}
231+
232+ def decode_width(value) when is_integer(value), do: value
233+ def decode_width(_), do: {:error, "Unexpected type when decoding Column.width"}
234+
235+ def encode_width(value) when is_integer(value), do: value
236+ def encode_width(_), do: {:error, "Unexpected type when encoding Column.width"}
237+
226238 def from_map(m) do
227239 %Column{
228240 cached_contents: m["cachedContents"] && CachedContents.from_map(m["cachedContents"]),
@@ -234,8 +246,8 @@ defmodule Column do
234246 name: decode_name(m["name"]),
235247 position: decode_position(m["position"]),
236248 render_type_name: decode_render_type_name(m["renderTypeName"]),
237- table_column_id: m["tableColumnId"],
238- width: m["width"],
249+ table_column_id: m["tableColumnId"] && decode_table_column_id(m["tableColumnId"]),
250+ width: m["width"] && decode_width(m["width"]),
239251 }
240252 end
Test case

test/inputs/json/misc/4d6fb.json

1 generated file · +14 −2
Melixirdefault / QuickType.ex+14 −2
@@ -210,12 +210,24 @@ defmodule MediaEmbed do
210210 def encode_content(value) when is_binary(value), do: value
211211 def encode_content(_), do: {:error, "Unexpected type when encoding MediaEmbed.content"}
212212
213+ def decode_height(value) when is_integer(value), do: value
214+ def decode_height(_), do: {:error, "Unexpected type when decoding MediaEmbed.height"}
215+
216+ def encode_height(value) when is_integer(value), do: value
217+ def encode_height(_), do: {:error, "Unexpected type when encoding MediaEmbed.height"}
218+
219+ def decode_width(value) when is_integer(value), do: value
220+ def decode_width(_), do: {:error, "Unexpected type when decoding MediaEmbed.width"}
221+
222+ def encode_width(value) when is_integer(value), do: value
223+ def encode_width(_), do: {:error, "Unexpected type when encoding MediaEmbed.width"}
224+
213225 def from_map(m) do
214226 %MediaEmbed{
215227 content: m["content"] && decode_content(m["content"]),
216- height: m["height"],
228+ height: m["height"] && decode_height(m["height"]),
217229 scrolling: m["scrolling"],
218- width: m["width"],
230+ width: m["width"] && decode_width(m["width"]),
219231 }
220232 end
Test case

test/inputs/json/misc/5f7fe.json

1 generated file · +14 −2
Melixirdefault / QuickType.ex+14 −2
@@ -264,6 +264,18 @@ defmodule Column do
264264 def encode_position(value) when is_integer(value), do: value
265265 def encode_position(_), do: {:error, "Unexpected type when encoding Column.position"}
266266
267+ def decode_table_column_id(value) when is_integer(value), do: value
268+ def decode_table_column_id(_), do: {:error, "Unexpected type when decoding Column.table_column_id"}
269+
270+ def encode_table_column_id(value) when is_integer(value), do: value
271+ def encode_table_column_id(_), do: {:error, "Unexpected type when encoding Column.table_column_id"}
272+
273+ def decode_width(value) when is_integer(value), do: value
274+ def decode_width(_), do: {:error, "Unexpected type when decoding Column.width"}
275+
276+ def encode_width(value) when is_integer(value), do: value
277+ def encode_width(_), do: {:error, "Unexpected type when encoding Column.width"}
278+
267279 def from_map(m) do
268280 %Column{
269281 cached_contents: m["cachedContents"] && CachedContents.from_map(m["cachedContents"]),
@@ -275,8 +287,8 @@ defmodule Column do
275287 name: decode_name(m["name"]),
276288 position: decode_position(m["position"]),
277289 render_type_name: TypeName.decode(m["renderTypeName"]),
278- table_column_id: m["tableColumnId"],
279- width: m["width"],
290+ table_column_id: m["tableColumnId"] && decode_table_column_id(m["tableColumnId"]),
291+ width: m["width"] && decode_width(m["width"]),
280292 }
281293 end
Test case

test/inputs/json/misc/617e8.json

1 generated file · +14 −2
Melixirdefault / QuickType.ex+14 −2
@@ -271,6 +271,18 @@ defmodule Column do
271271 def encode_position(value) when is_integer(value), do: value
272272 def encode_position(_), do: {:error, "Unexpected type when encoding Column.position"}
273273
274+ def decode_table_column_id(value) when is_integer(value), do: value
275+ def decode_table_column_id(_), do: {:error, "Unexpected type when decoding Column.table_column_id"}
276+
277+ def encode_table_column_id(value) when is_integer(value), do: value
278+ def encode_table_column_id(_), do: {:error, "Unexpected type when encoding Column.table_column_id"}
279+
280+ def decode_width(value) when is_integer(value), do: value
281+ def decode_width(_), do: {:error, "Unexpected type when decoding Column.width"}
282+
283+ def encode_width(value) when is_integer(value), do: value
284+ def encode_width(_), do: {:error, "Unexpected type when encoding Column.width"}
285+
274286 def from_map(m) do
275287 %Column{
276288 cached_contents: m["cachedContents"] && CachedContents.from_map(m["cachedContents"]),
@@ -283,8 +295,8 @@ defmodule Column do
283295 name: decode_name(m["name"]),
284296 position: decode_position(m["position"]),
285297 render_type_name: TypeName.decode(m["renderTypeName"]),
286- table_column_id: m["tableColumnId"],
287- width: m["width"],
298+ table_column_id: m["tableColumnId"] && decode_table_column_id(m["tableColumnId"]),
299+ width: m["width"] && decode_width(m["width"]),
288300 }
289301 end
Test case

test/inputs/json/misc/6de06.json

1 generated file · +14 −2
Melixirdefault / QuickType.ex+14 −2
@@ -201,12 +201,24 @@ defmodule MediaEmbed do
201201 def encode_content(value) when is_binary(value), do: value
202202 def encode_content(_), do: {:error, "Unexpected type when encoding MediaEmbed.content"}
203203
204+ def decode_height(value) when is_integer(value), do: value
205+ def decode_height(_), do: {:error, "Unexpected type when decoding MediaEmbed.height"}
206+
207+ def encode_height(value) when is_integer(value), do: value
208+ def encode_height(_), do: {:error, "Unexpected type when encoding MediaEmbed.height"}
209+
210+ def decode_width(value) when is_integer(value), do: value
211+ def decode_width(_), do: {:error, "Unexpected type when decoding MediaEmbed.width"}
212+
213+ def encode_width(value) when is_integer(value), do: value
214+ def encode_width(_), do: {:error, "Unexpected type when encoding MediaEmbed.width"}
215+
204216 def from_map(m) do
205217 %MediaEmbed{
206218 content: m["content"] && decode_content(m["content"]),
207- height: m["height"],
219+ height: m["height"] && decode_height(m["height"]),
208220 scrolling: m["scrolling"],
209- width: m["width"],
221+ width: m["width"] && decode_width(m["width"]),
210222 }
211223 end
Test case

test/inputs/json/misc/a3d8c.json

1 generated file · +14 −2
Melixirdefault / QuickType.ex+14 −2
@@ -264,6 +264,18 @@ defmodule Column do
264264 def encode_position(value) when is_integer(value), do: value
265265 def encode_position(_), do: {:error, "Unexpected type when encoding Column.position"}
266266
267+ def decode_table_column_id(value) when is_integer(value), do: value
268+ def decode_table_column_id(_), do: {:error, "Unexpected type when decoding Column.table_column_id"}
269+
270+ def encode_table_column_id(value) when is_integer(value), do: value
271+ def encode_table_column_id(_), do: {:error, "Unexpected type when encoding Column.table_column_id"}
272+
273+ def decode_width(value) when is_integer(value), do: value
274+ def decode_width(_), do: {:error, "Unexpected type when decoding Column.width"}
275+
276+ def encode_width(value) when is_integer(value), do: value
277+ def encode_width(_), do: {:error, "Unexpected type when encoding Column.width"}
278+
267279 def from_map(m) do
268280 %Column{
269281 cached_contents: m["cachedContents"] && CachedContents.from_map(m["cachedContents"]),
@@ -275,8 +287,8 @@ defmodule Column do
275287 name: decode_name(m["name"]),
276288 position: decode_position(m["position"]),
277289 render_type_name: TypeName.decode(m["renderTypeName"]),
278- table_column_id: m["tableColumnId"],
279- width: m["width"],
290+ table_column_id: m["tableColumnId"] && decode_table_column_id(m["tableColumnId"]),
291+ width: m["width"] && decode_width(m["width"]),
280292 }
281293 end
Test case

test/inputs/json/misc/be234.json

1 generated file · +14 −2
Melixirdefault / QuickType.ex+14 −2
@@ -244,12 +244,24 @@ defmodule MediaEmbed do
244244 def encode_content(value) when is_binary(value), do: value
245245 def encode_content(_), do: {:error, "Unexpected type when encoding MediaEmbed.content"}
246246
247+ def decode_height(value) when is_integer(value), do: value
248+ def decode_height(_), do: {:error, "Unexpected type when decoding MediaEmbed.height"}
249+
250+ def encode_height(value) when is_integer(value), do: value
251+ def encode_height(_), do: {:error, "Unexpected type when encoding MediaEmbed.height"}
252+
253+ def decode_width(value) when is_integer(value), do: value
254+ def decode_width(_), do: {:error, "Unexpected type when decoding MediaEmbed.width"}
255+
256+ def encode_width(value) when is_integer(value), do: value
257+ def encode_width(_), do: {:error, "Unexpected type when encoding MediaEmbed.width"}
258+
247259 def from_map(m) do
248260 %MediaEmbed{
249261 content: m["content"] && decode_content(m["content"]),
250- height: m["height"],
262+ height: m["height"] && decode_height(m["height"]),
251263 scrolling: m["scrolling"],
252- width: m["width"],
264+ width: m["width"] && decode_width(m["width"]),
253265 }
254266 end
Test case

test/inputs/json/misc/e8b04.json

1 generated file · +49 −7
Melixirdefault / QuickType.ex+49 −7
@@ -634,14 +634,26 @@ defmodule ChildMetadata do
634634 unified_version: integer() | nil
635635 }
636636
637+ def decode_include_auto(value) when is_integer(value), do: value
638+ def decode_include_auto(_), do: {:error, "Unexpected type when decoding ChildMetadata.include_auto"}
639+
640+ def encode_include_auto(value) when is_integer(value), do: value
641+ def encode_include_auto(_), do: {:error, "Unexpected type when encoding ChildMetadata.include_auto"}
642+
643+ def decode_unified_version(value) when is_integer(value), do: value
644+ def decode_unified_version(_), do: {:error, "Unexpected type when decoding ChildMetadata.unified_version"}
645+
646+ def encode_unified_version(value) when is_integer(value), do: value
647+ def encode_unified_version(_), do: {:error, "Unexpected type when encoding ChildMetadata.unified_version"}
648+
637649 def from_map(m) do
638650 %ChildMetadata{
639651 custom_values: m["customValues"],
640652 freeform: m["freeform"],
641- include_auto: m["includeAuto"],
653+ include_auto: m["includeAuto"] && decode_include_auto(m["includeAuto"]),
642654 operator: m["operator"] && MetadataOperator.decode(m["operator"]),
643655 table_column_id: m["tableColumnId"] && TableColumnID.from_map(m["tableColumnId"]),
644- unified_version: m["unifiedVersion"],
656+ unified_version: m["unifiedVersion"] && decode_unified_version(m["unifiedVersion"]),
645657 }
646658 end
647659
@@ -1650,6 +1662,12 @@ defmodule Owner do
16501662 def encode_id(value) when is_binary(value), do: value
16511663 def encode_id(_), do: {:error, "Unexpected type when encoding Owner.id"}
16521664
1665+ def decode_last_notification_seen_at(value) when is_integer(value), do: value
1666+ def decode_last_notification_seen_at(_), do: {:error, "Unexpected type when decoding Owner.last_notification_seen_at"}
1667+
1668+ def encode_last_notification_seen_at(value) when is_integer(value), do: value
1669+ def encode_last_notification_seen_at(_), do: {:error, "Unexpected type when encoding Owner.last_notification_seen_at"}
1670+
16531671 def decode_profile_image_url_large(value) when is_binary(value), do: value
16541672 def decode_profile_image_url_large(_), do: {:error, "Unexpected type when decoding Owner.profile_image_url_large"}
16551673
@@ -1679,7 +1697,7 @@ defmodule Owner do
16791697 display_name: decode_display_name(m["displayName"]),
16801698 flags: m["flags"],
16811699 id: decode_id(m["id"]),
1682- last_notification_seen_at: m["lastNotificationSeenAt"],
1700+ last_notification_seen_at: m["lastNotificationSeenAt"] && decode_last_notification_seen_at(m["lastNotificationSeenAt"]),
16831701 profile_image_url_large: m["profileImageUrlLarge"] && decode_profile_image_url_large(m["profileImageUrlLarge"]),
16841702 profile_image_url_medium: m["profileImageUrlMedium"] && decode_profile_image_url_medium(m["profileImageUrlMedium"]),
16851703 profile_image_url_small: m["profileImageUrlSmall"] && decode_profile_image_url_small(m["profileImageUrlSmall"]),
@@ -2148,6 +2166,12 @@ defmodule TopLevelElement do
21482166 def encode_id(value) when is_binary(value), do: value
21492167 def encode_id(_), do: {:error, "Unexpected type when encoding TopLevelElement.id"}
21502168
2169+ def decode_index_updated_at(value) when is_integer(value), do: value
2170+ def decode_index_updated_at(_), do: {:error, "Unexpected type when decoding TopLevelElement.index_updated_at"}
2171+
2172+ def encode_index_updated_at(value) when is_integer(value), do: value
2173+ def encode_index_updated_at(_), do: {:error, "Unexpected type when encoding TopLevelElement.index_updated_at"}
2174+
21512175 def decode_locale(value) when is_binary(value), do: value
21522176 def decode_locale(_), do: {:error, "Unexpected type when decoding TopLevelElement.locale"}
21532177
@@ -2184,6 +2208,12 @@ defmodule TopLevelElement do
21842208 def encode_publication_append_enabled(value) when is_boolean(value), do: value
21852209 def encode_publication_append_enabled(_), do: {:error, "Unexpected type when encoding TopLevelElement.publication_append_enabled"}
21862210
2211+ def decode_publication_date(value) when is_integer(value), do: value
2212+ def decode_publication_date(_), do: {:error, "Unexpected type when decoding TopLevelElement.publication_date"}
2213+
2214+ def encode_publication_date(value) when is_integer(value), do: value
2215+ def encode_publication_date(_), do: {:error, "Unexpected type when encoding TopLevelElement.publication_date"}
2216+
21872217 def decode_publication_group(value) when is_integer(value), do: value
21882218 def decode_publication_group(_), do: {:error, "Unexpected type when decoding TopLevelElement.publication_group"}
21892219
@@ -2208,6 +2238,18 @@ defmodule TopLevelElement do
22082238 def encode_row_class(value) when is_binary(value), do: value
22092239 def encode_row_class(_), do: {:error, "Unexpected type when encoding TopLevelElement.row_class"}
22102240
2241+ def decode_row_identifier_column_id(value) when is_integer(value), do: value
2242+ def decode_row_identifier_column_id(_), do: {:error, "Unexpected type when decoding TopLevelElement.row_identifier_column_id"}
2243+
2244+ def encode_row_identifier_column_id(value) when is_integer(value), do: value
2245+ def encode_row_identifier_column_id(_), do: {:error, "Unexpected type when encoding TopLevelElement.row_identifier_column_id"}
2246+
2247+ def decode_rows_updated_at(value) when is_integer(value), do: value
2248+ def decode_rows_updated_at(_), do: {:error, "Unexpected type when decoding TopLevelElement.rows_updated_at"}
2249+
2250+ def encode_rows_updated_at(value) when is_integer(value), do: value
2251+ def encode_rows_updated_at(_), do: {:error, "Unexpected type when encoding TopLevelElement.rows_updated_at"}
2252+
22112253 def decode_table_id(value) when is_integer(value), do: value
22122254 def decode_table_id(_), do: {:error, "Unexpected type when decoding TopLevelElement.table_id"}
22132255
@@ -2245,7 +2287,7 @@ defmodule TopLevelElement do
22452287 hide_from_catalog: decode_hide_from_catalog(m["hideFromCatalog"]),
22462288 hide_from_data_json: decode_hide_from_data_json(m["hideFromDataJson"]),
22472289 id: decode_id(m["id"]),
2248- index_updated_at: m["indexUpdatedAt"],
2290+ index_updated_at: m["indexUpdatedAt"] && decode_index_updated_at(m["indexUpdatedAt"]),
22492291 locale: decode_locale(m["locale"]),
22502292 metadata: TopLevelMetadata.from_map(m["metadata"]),
22512293 moderation_status: m["moderationStatus"],
@@ -2257,15 +2299,15 @@ defmodule TopLevelElement do
22572299 owner: Owner.from_map(m["owner"]),
22582300 provenance: Provenance.decode(m["provenance"]),
22592301 publication_append_enabled: decode_publication_append_enabled(m["publicationAppendEnabled"]),
2260- publication_date: m["publicationDate"],
2302+ publication_date: m["publicationDate"] && decode_publication_date(m["publicationDate"]),
22612303 publication_group: decode_publication_group(m["publicationGroup"]),
22622304 publication_stage: PublicationStage.decode(m["publicationStage"]),
22632305 ratings: m["ratings"] && Ratings.from_map(m["ratings"]),
22642306 resource_name: m["resourceName"] && decode_resource_name(m["resourceName"]),
22652307 rights: Enum.map(m["rights"], &Right.decode/1),
22662308 row_class: m["rowClass"] && decode_row_class(m["rowClass"]),
2267- row_identifier_column_id: m["rowIdentifierColumnId"],
2268- rows_updated_at: m["rowsUpdatedAt"],
2309+ row_identifier_column_id: m["rowIdentifierColumnId"] && decode_row_identifier_column_id(m["rowIdentifierColumnId"]),
2310+ rows_updated_at: m["rowsUpdatedAt"] && decode_rows_updated_at(m["rowsUpdatedAt"]),
22692311 rows_updated_by: m["rowsUpdatedBy"] && RowsUpdatedBy.decode(m["rowsUpdatedBy"]),
22702312 table_author: TableAuthor.from_map(m["tableAuthor"]),
22712313 table_id: decode_table_id(m["tableId"]),
Test case

test/inputs/json/misc/f74d5.json

1 generated file · +14 −2
Melixirdefault / QuickType.ex+14 −2
@@ -264,6 +264,18 @@ defmodule Column do
264264 def encode_position(value) when is_integer(value), do: value
265265 def encode_position(_), do: {:error, "Unexpected type when encoding Column.position"}
266266
267+ def decode_table_column_id(value) when is_integer(value), do: value
268+ def decode_table_column_id(_), do: {:error, "Unexpected type when decoding Column.table_column_id"}
269+
270+ def encode_table_column_id(value) when is_integer(value), do: value
271+ def encode_table_column_id(_), do: {:error, "Unexpected type when encoding Column.table_column_id"}
272+
273+ def decode_width(value) when is_integer(value), do: value
274+ def decode_width(_), do: {:error, "Unexpected type when decoding Column.width"}
275+
276+ def encode_width(value) when is_integer(value), do: value
277+ def encode_width(_), do: {:error, "Unexpected type when encoding Column.width"}
278+
267279 def from_map(m) do
268280 %Column{
269281 cached_contents: m["cachedContents"] && CachedContents.from_map(m["cachedContents"]),
@@ -275,8 +287,8 @@ defmodule Column do
275287 name: decode_name(m["name"]),
276288 position: decode_position(m["position"]),
277289 render_type_name: TypeName.decode(m["renderTypeName"]),
278- table_column_id: m["tableColumnId"],
279- width: m["width"],
290+ table_column_id: m["tableColumnId"] && decode_table_column_id(m["tableColumnId"]),
291+ width: m["width"] && decode_width(m["width"]),
280292 }
281293 end
Test case

test/inputs/json/misc/fcca3.json

1 generated file · +14 −2
Melixirdefault / QuickType.ex+14 −2
@@ -298,6 +298,18 @@ defmodule Column do
298298 def encode_position(value) when is_integer(value), do: value
299299 def encode_position(_), do: {:error, "Unexpected type when encoding Column.position"}
300300
301+ def decode_table_column_id(value) when is_integer(value), do: value
302+ def decode_table_column_id(_), do: {:error, "Unexpected type when decoding Column.table_column_id"}
303+
304+ def encode_table_column_id(value) when is_integer(value), do: value
305+ def encode_table_column_id(_), do: {:error, "Unexpected type when encoding Column.table_column_id"}
306+
307+ def decode_width(value) when is_integer(value), do: value
308+ def decode_width(_), do: {:error, "Unexpected type when decoding Column.width"}
309+
310+ def encode_width(value) when is_integer(value), do: value
311+ def encode_width(_), do: {:error, "Unexpected type when encoding Column.width"}
312+
301313 def from_map(m) do
302314 %Column{
303315 cached_contents: m["cachedContents"] && CachedContents.from_map(m["cachedContents"]),
@@ -310,8 +322,8 @@ defmodule Column do
310322 name: decode_name(m["name"]),
311323 position: decode_position(m["position"]),
312324 render_type_name: TypeName.decode(m["renderTypeName"]),
313- table_column_id: m["tableColumnId"],
314- width: m["width"],
325+ table_column_id: m["tableColumnId"] && decode_table_column_id(m["tableColumnId"]),
326+ width: m["width"] && decode_width(m["width"]),
315327 }
316328 end
Test case

test/inputs/json/priority/bug427.json

1 generated file · +49 −7
Melixirdefault / QuickType.ex+49 −7
@@ -1719,6 +1719,12 @@ defmodule ExtendedBy do
17191719 type_arguments: [ExtendedBy.t()] | nil
17201720 }
17211721
1722+ def decode_id(value) when is_integer(value), do: value
1723+ def decode_id(_), do: {:error, "Unexpected type when decoding ExtendedBy.id"}
1724+
1725+ def encode_id(value) when is_integer(value), do: value
1726+ def encode_id(_), do: {:error, "Unexpected type when encoding ExtendedBy.id"}
1727+
17221728 def decode_name(value) when is_binary(value), do: value
17231729 def decode_name(_), do: {:error, "Unexpected type when decoding ExtendedBy.name"}
17241730
@@ -1728,7 +1734,7 @@ defmodule ExtendedBy do
17281734 def from_map(m) do
17291735 %ExtendedBy{
17301736 constraint: m["constraint"] && ExtendedBy.from_map(m["constraint"]),
1731- id: m["id"],
1737+ id: m["id"] && decode_id(m["id"]),
17321738 name: decode_name(m["name"]),
17331739 type: TypeEnum.decode(m["type"]),
17341740 type_arguments: m["typeArguments"] && Enum.map(m["typeArguments"], &ExtendedBy.from_map/1),
@@ -1808,6 +1814,12 @@ defmodule Type4 do
18081814 type_arguments: [ElementType.t()] | nil
18091815 }
18101816
1817+ def decode_id(value) when is_integer(value), do: value
1818+ def decode_id(_), do: {:error, "Unexpected type when decoding Type4.id"}
1819+
1820+ def encode_id(value) when is_integer(value), do: value
1821+ def encode_id(_), do: {:error, "Unexpected type when encoding Type4.id"}
1822+
18111823 def decode_name(value) when is_binary(value), do: value
18121824 def decode_name(_), do: {:error, "Unexpected type when decoding Type4.name"}
18131825
@@ -1820,7 +1832,7 @@ defmodule Type4 do
18201832 declaration: m["declaration"] && GetSignature.from_map(m["declaration"]),
18211833 element_type: m["elementType"] && ElementType.from_map(m["elementType"]),
18221834 elements: m["elements"] && Enum.map(m["elements"], &ExtendedBy.from_map/1),
1823- id: m["id"],
1835+ id: m["id"] && decode_id(m["id"]),
18241836 name: m["name"] && decode_name(m["name"]),
18251837 type: TypeEnum.decode(m["type"]),
18261838 type_arguments: m["typeArguments"] && Enum.map(m["typeArguments"], &ElementType.from_map/1),
@@ -2598,6 +2610,12 @@ defmodule Type5 do
25982610 types: [TypeElement.t()] | nil
25992611 }
26002612
2613+ def decode_id(value) when is_integer(value), do: value
2614+ def decode_id(_), do: {:error, "Unexpected type when decoding Type5.id"}
2615+
2616+ def encode_id(value) when is_integer(value), do: value
2617+ def encode_id(_), do: {:error, "Unexpected type when encoding Type5.id"}
2618+
26012619 def decode_name(value) when is_binary(value), do: value
26022620 def decode_name(_), do: {:error, "Unexpected type when decoding Type5.name"}
26032621
@@ -2610,7 +2628,7 @@ defmodule Type5 do
26102628 declaration: m["declaration"] && Declaration2.from_map(m["declaration"]),
26112629 element_type: m["elementType"] && ExtendedBy.from_map(m["elementType"]),
26122630 elements: m["elements"] && Enum.map(m["elements"], &ElementType.from_map/1),
2613- id: m["id"],
2631+ id: m["id"] && decode_id(m["id"]),
26142632 name: m["name"] && decode_name(m["name"]),
26152633 type: TypeEnum.decode(m["type"]),
26162634 type_arguments: m["typeArguments"] && Enum.map(m["typeArguments"], &TypeArgument1.from_map/1),
@@ -3048,6 +3066,12 @@ defmodule Type8 do
30483066 type_arguments: [ElementType.t()] | nil
30493067 }
30503068
3069+ def decode_id(value) when is_integer(value), do: value
3070+ def decode_id(_), do: {:error, "Unexpected type when decoding Type8.id"}
3071+
3072+ def encode_id(value) when is_integer(value), do: value
3073+ def encode_id(_), do: {:error, "Unexpected type when encoding Type8.id"}
3074+
30513075 def decode_name(value) when is_binary(value), do: value
30523076 def decode_name(_), do: {:error, "Unexpected type when decoding Type8.name"}
30533077
@@ -3058,7 +3082,7 @@ defmodule Type8 do
30583082 %Type8{
30593083 declaration: m["declaration"] && Declaration3.from_map(m["declaration"]),
30603084 element_type: m["elementType"] && ElementType.from_map(m["elementType"]),
3061- id: m["id"],
3085+ id: m["id"] && decode_id(m["id"]),
30623086 name: m["name"] && decode_name(m["name"]),
30633087 type: TypeEnum.decode(m["type"]),
30643088 type_arguments: m["typeArguments"] && Enum.map(m["typeArguments"], &ElementType.from_map/1),
@@ -3188,10 +3212,16 @@ defmodule Type9 do
31883212 type_arguments: [ElementType.t()] | nil
31893213 }
31903214
3215+ def decode_id(value) when is_integer(value), do: value
3216+ def decode_id(_), do: {:error, "Unexpected type when decoding Type9.id"}
3217+
3218+ def encode_id(value) when is_integer(value), do: value
3219+ def encode_id(_), do: {:error, "Unexpected type when encoding Type9.id"}
3220+
31913221 def from_map(m) do
31923222 %Type9{
31933223 declaration: m["declaration"] && Declaration1.from_map(m["declaration"]),
3194- id: m["id"],
3224+ id: m["id"] && decode_id(m["id"]),
31953225 name: m["name"] && Name.decode(m["name"]),
31963226 type: TypeEnum.decode(m["type"]),
31973227 type_arguments: m["typeArguments"] && Enum.map(m["typeArguments"], &ElementType.from_map/1),
@@ -3648,6 +3678,12 @@ defmodule Type10 do
36483678 value: String.t() | nil
36493679 }
36503680
3681+ def decode_id(value) when is_integer(value), do: value
3682+ def decode_id(_), do: {:error, "Unexpected type when decoding Type10.id"}
3683+
3684+ def encode_id(value) when is_integer(value), do: value
3685+ def encode_id(_), do: {:error, "Unexpected type when encoding Type10.id"}
3686+
36513687 def decode_name(value) when is_binary(value), do: value
36523688 def decode_name(_), do: {:error, "Unexpected type when decoding Type10.name"}
36533689
@@ -3665,7 +3701,7 @@ defmodule Type10 do
36653701 declaration: m["declaration"] && Declaration4.from_map(m["declaration"]),
36663702 element_type: m["elementType"] && ElementType.from_map(m["elementType"]),
36673703 elements: m["elements"] && Enum.map(m["elements"], &ExtendedBy.from_map/1),
3668- id: m["id"],
3704+ id: m["id"] && decode_id(m["id"]),
36693705 name: m["name"] && decode_name(m["name"]),
36703706 type: TypeEnum.decode(m["type"]),
36713707 type_arguments: m["typeArguments"] && Enum.map(m["typeArguments"], &TypeArgument2.from_map/1),
@@ -3713,6 +3749,12 @@ defmodule Type12 do
37133749 type: String.t()
37143750 }
37153751
3752+ def decode_id(value) when is_integer(value), do: value
3753+ def decode_id(_), do: {:error, "Unexpected type when decoding Type12.id"}
3754+
3755+ def encode_id(value) when is_integer(value), do: value
3756+ def encode_id(_), do: {:error, "Unexpected type when encoding Type12.id"}
3757+
37163758 def decode_operator(value) when is_binary(value), do: value
37173759 def decode_operator(_), do: {:error, "Unexpected type when decoding Type12.operator"}
37183760
@@ -3727,7 +3769,7 @@ defmodule Type12 do
37273769
37283770 def from_map(m) do
37293771 %Type12{
3730- id: m["id"],
3772+ id: m["id"] && decode_id(m["id"]),
37313773 name: m["name"] && Name.decode(m["name"]),
37323774 operator: m["operator"] && decode_operator(m["operator"]),
37333775 target: m["target"] && ElementType.from_map(m["target"]),
Test case

test/inputs/json/priority/combinations1.json

1 generated file · +48 −6
Melixirdefault / QuickType.ex+48 −6
@@ -246,6 +246,20 @@ defmodule ChemotherapeuticClass do
246246 unshy: nil | nil
247247 }
248248
249+ def decode_catharticalness(value) when is_float(value), do: value
250+ def decode_catharticalness(value) when is_integer(value), do: value
251+ def decode_catharticalness(_), do: {:error, "Unexpected type when decoding ChemotherapeuticClass.catharticalness"}
252+
253+ def encode_catharticalness(value) when is_float(value), do: value
254+ def encode_catharticalness(value) when is_integer(value), do: value
255+ def encode_catharticalness(_), do: {:error, "Unexpected type when encoding ChemotherapeuticClass.catharticalness"}
256+
257+ def decode_chirotherium(value) when is_integer(value), do: value
258+ def decode_chirotherium(_), do: {:error, "Unexpected type when decoding ChemotherapeuticClass.chirotherium"}
259+
260+ def encode_chirotherium(value) when is_integer(value), do: value
261+ def encode_chirotherium(_), do: {:error, "Unexpected type when encoding ChemotherapeuticClass.chirotherium"}
262+
249263 def decode_disdiapason(value) when is_binary(value), do: value
250264 def decode_disdiapason(_), do: {:error, "Unexpected type when decoding ChemotherapeuticClass.disdiapason"}
251265
@@ -257,10 +271,10 @@ defmodule ChemotherapeuticClass do
257271 angioneurotic: m["angioneurotic"],
258272 availment: m["availment"],
259273 bladelet: m["bladelet"],
260- catharticalness: m["catharticalness"],
274+ catharticalness: m["catharticalness"] && decode_catharticalness(m["catharticalness"]),
261275 caulis: m["caulis"],
262276 chalcus: m["chalcus"],
263- chirotherium: m["Chirotherium"],
277+ chirotherium: m["Chirotherium"] && decode_chirotherium(m["Chirotherium"]),
264278 disdiapason: m["disdiapason"] && decode_disdiapason(m["disdiapason"]),
265279 enteradenological: m["enteradenological"],
266280 homocerc: m["homocerc"],
@@ -433,6 +447,20 @@ defmodule CoadjustClass do
433447 unchargeable: nil | nil
434448 }
435449
450+ def decode_catharticalness(value) when is_float(value), do: value
451+ def decode_catharticalness(value) when is_integer(value), do: value
452+ def decode_catharticalness(_), do: {:error, "Unexpected type when decoding CoadjustClass.catharticalness"}
453+
454+ def encode_catharticalness(value) when is_float(value), do: value
455+ def encode_catharticalness(value) when is_integer(value), do: value
456+ def encode_catharticalness(_), do: {:error, "Unexpected type when encoding CoadjustClass.catharticalness"}
457+
458+ def decode_chirotherium(value) when is_integer(value), do: value
459+ def decode_chirotherium(_), do: {:error, "Unexpected type when decoding CoadjustClass.chirotherium"}
460+
461+ def encode_chirotherium(value) when is_integer(value), do: value
462+ def encode_chirotherium(_), do: {:error, "Unexpected type when encoding CoadjustClass.chirotherium"}
463+
436464 def decode_disdiapason(value) when is_binary(value), do: value
437465 def decode_disdiapason(_), do: {:error, "Unexpected type when decoding CoadjustClass.disdiapason"}
438466
@@ -443,8 +471,8 @@ defmodule CoadjustClass do
443471 %CoadjustClass{
444472 amidosulphonal: m["amidosulphonal"],
445473 benny: m["Benny"],
446- catharticalness: m["catharticalness"],
447- chirotherium: m["Chirotherium"],
474+ catharticalness: m["catharticalness"] && decode_catharticalness(m["catharticalness"]),
475+ chirotherium: m["Chirotherium"] && decode_chirotherium(m["Chirotherium"]),
448476 disdiapason: m["disdiapason"] && decode_disdiapason(m["disdiapason"]),
449477 ensnare: m["ensnare"],
450478 homocerc: m["homocerc"],
@@ -2013,6 +2041,20 @@ defmodule HemocoeleClass do
20132041 walt: nil | nil
20142042 }
20152043
2044+ def decode_catharticalness(value) when is_float(value), do: value
2045+ def decode_catharticalness(value) when is_integer(value), do: value
2046+ def decode_catharticalness(_), do: {:error, "Unexpected type when decoding HemocoeleClass.catharticalness"}
2047+
2048+ def encode_catharticalness(value) when is_float(value), do: value
2049+ def encode_catharticalness(value) when is_integer(value), do: value
2050+ def encode_catharticalness(_), do: {:error, "Unexpected type when encoding HemocoeleClass.catharticalness"}
2051+
2052+ def decode_chirotherium(value) when is_integer(value), do: value
2053+ def decode_chirotherium(_), do: {:error, "Unexpected type when decoding HemocoeleClass.chirotherium"}
2054+
2055+ def encode_chirotherium(value) when is_integer(value), do: value
2056+ def encode_chirotherium(_), do: {:error, "Unexpected type when encoding HemocoeleClass.chirotherium"}
2057+
20162058 def decode_disdiapason(value) when is_binary(value), do: value
20172059 def decode_disdiapason(_), do: {:error, "Unexpected type when decoding HemocoeleClass.disdiapason"}
20182060
@@ -2025,8 +2067,8 @@ defmodule HemocoeleClass do
20252067 amelification: m["amelification"],
20262068 autobiographic: m["autobiographic"],
20272069 berat: m["berat"],
2028- catharticalness: m["catharticalness"],
2029- chirotherium: m["Chirotherium"],
2070+ catharticalness: m["catharticalness"] && decode_catharticalness(m["catharticalness"]),
2071+ chirotherium: m["Chirotherium"] && decode_chirotherium(m["Chirotherium"]),
20302072 disdiapason: m["disdiapason"] && decode_disdiapason(m["disdiapason"]),
20312073 disproportionably: m["disproportionably"],
20322074 erythrite: m["erythrite"],
Test case

test/inputs/json/priority/combinations2.json

1 generated file · +468 −66
Melixirdefault / QuickType.ex+468 −66
@@ -323,39 +323,173 @@ defmodule Amphithyron do
323323 undecimal: integer() | nil
324324 }
325325
326+ def decode_akroasis(value) when is_integer(value), do: value
327+ def decode_akroasis(_), do: {:error, "Unexpected type when decoding Amphithyron.akroasis"}
328+
329+ def encode_akroasis(value) when is_integer(value), do: value
330+ def encode_akroasis(_), do: {:error, "Unexpected type when encoding Amphithyron.akroasis"}
331+
332+ def decode_antiphonical(value) when is_integer(value), do: value
333+ def decode_antiphonical(_), do: {:error, "Unexpected type when decoding Amphithyron.antiphonical"}
334+
335+ def encode_antiphonical(value) when is_integer(value), do: value
336+ def encode_antiphonical(_), do: {:error, "Unexpected type when encoding Amphithyron.antiphonical"}
337+
338+ def decode_basebred(value) when is_integer(value), do: value
339+ def decode_basebred(_), do: {:error, "Unexpected type when decoding Amphithyron.basebred"}
340+
341+ def encode_basebred(value) when is_integer(value), do: value
342+ def encode_basebred(_), do: {:error, "Unexpected type when encoding Amphithyron.basebred"}
343+
344+ def decode_catharticalness(value) when is_float(value), do: value
345+ def decode_catharticalness(value) when is_integer(value), do: value
346+ def decode_catharticalness(_), do: {:error, "Unexpected type when decoding Amphithyron.catharticalness"}
347+
348+ def encode_catharticalness(value) when is_float(value), do: value
349+ def encode_catharticalness(value) when is_integer(value), do: value
350+ def encode_catharticalness(_), do: {:error, "Unexpected type when encoding Amphithyron.catharticalness"}
351+
352+ def decode_chirotherium(value) when is_integer(value), do: value
353+ def decode_chirotherium(_), do: {:error, "Unexpected type when decoding Amphithyron.chirotherium"}
354+
355+ def encode_chirotherium(value) when is_integer(value), do: value
356+ def encode_chirotherium(_), do: {:error, "Unexpected type when encoding Amphithyron.chirotherium"}
357+
358+ def decode_conductometric(value) when is_integer(value), do: value
359+ def decode_conductometric(_), do: {:error, "Unexpected type when decoding Amphithyron.conductometric"}
360+
361+ def encode_conductometric(value) when is_integer(value), do: value
362+ def encode_conductometric(_), do: {:error, "Unexpected type when encoding Amphithyron.conductometric"}
363+
326364 def decode_disdiapason(value) when is_binary(value), do: value
327365 def decode_disdiapason(_), do: {:error, "Unexpected type when decoding Amphithyron.disdiapason"}
328366
329367 def encode_disdiapason(value) when is_binary(value), do: value
330368 def encode_disdiapason(_), do: {:error, "Unexpected type when encoding Amphithyron.disdiapason"}
331369
370+ def decode_ensilation(value) when is_integer(value), do: value
371+ def decode_ensilation(_), do: {:error, "Unexpected type when decoding Amphithyron.ensilation"}
372+
373+ def encode_ensilation(value) when is_integer(value), do: value
374+ def encode_ensilation(_), do: {:error, "Unexpected type when encoding Amphithyron.ensilation"}
375+
376+ def decode_eyebolt(value) when is_integer(value), do: value
377+ def decode_eyebolt(_), do: {:error, "Unexpected type when decoding Amphithyron.eyebolt"}
378+
379+ def encode_eyebolt(value) when is_integer(value), do: value
380+ def encode_eyebolt(_), do: {:error, "Unexpected type when encoding Amphithyron.eyebolt"}
381+
382+ def decode_fistulated(value) when is_integer(value), do: value
383+ def decode_fistulated(_), do: {:error, "Unexpected type when decoding Amphithyron.fistulated"}
384+
385+ def encode_fistulated(value) when is_integer(value), do: value
386+ def encode_fistulated(_), do: {:error, "Unexpected type when encoding Amphithyron.fistulated"}
387+
388+ def decode_heteropod(value) when is_integer(value), do: value
389+ def decode_heteropod(_), do: {:error, "Unexpected type when decoding Amphithyron.heteropod"}
390+
391+ def encode_heteropod(value) when is_integer(value), do: value
392+ def encode_heteropod(_), do: {:error, "Unexpected type when encoding Amphithyron.heteropod"}
393+
394+ def decode_juniperus(value) when is_integer(value), do: value
395+ def decode_juniperus(_), do: {:error, "Unexpected type when decoding Amphithyron.juniperus"}
396+
397+ def encode_juniperus(value) when is_integer(value), do: value
398+ def encode_juniperus(_), do: {:error, "Unexpected type when encoding Amphithyron.juniperus"}
399+
400+ def decode_labyrinthically(value) when is_integer(value), do: value
401+ def decode_labyrinthically(_), do: {:error, "Unexpected type when decoding Amphithyron.labyrinthically"}
402+
403+ def encode_labyrinthically(value) when is_integer(value), do: value
404+ def encode_labyrinthically(_), do: {:error, "Unexpected type when encoding Amphithyron.labyrinthically"}
405+
406+ def decode_martyrization(value) when is_integer(value), do: value
407+ def decode_martyrization(_), do: {:error, "Unexpected type when decoding Amphithyron.martyrization"}
408+
409+ def encode_martyrization(value) when is_integer(value), do: value
410+ def encode_martyrization(_), do: {:error, "Unexpected type when encoding Amphithyron.martyrization"}
411+
412+ def decode_mispolicy(value) when is_integer(value), do: value
413+ def decode_mispolicy(_), do: {:error, "Unexpected type when decoding Amphithyron.mispolicy"}
414+
415+ def encode_mispolicy(value) when is_integer(value), do: value
416+ def encode_mispolicy(_), do: {:error, "Unexpected type when encoding Amphithyron.mispolicy"}
417+
418+ def decode_multipara(value) when is_integer(value), do: value
419+ def decode_multipara(_), do: {:error, "Unexpected type when decoding Amphithyron.multipara"}
420+
421+ def encode_multipara(value) when is_integer(value), do: value
422+ def encode_multipara(_), do: {:error, "Unexpected type when encoding Amphithyron.multipara"}
423+
424+ def decode_nazirite(value) when is_integer(value), do: value
425+ def decode_nazirite(_), do: {:error, "Unexpected type when decoding Amphithyron.nazirite"}
426+
427+ def encode_nazirite(value) when is_integer(value), do: value
428+ def encode_nazirite(_), do: {:error, "Unexpected type when encoding Amphithyron.nazirite"}
429+
430+ def decode_possessorial(value) when is_integer(value), do: value
431+ def decode_possessorial(_), do: {:error, "Unexpected type when decoding Amphithyron.possessorial"}
432+
433+ def encode_possessorial(value) when is_integer(value), do: value
434+ def encode_possessorial(_), do: {:error, "Unexpected type when encoding Amphithyron.possessorial"}
435+
436+ def decode_shamed(value) when is_integer(value), do: value
437+ def decode_shamed(_), do: {:error, "Unexpected type when decoding Amphithyron.shamed"}
438+
439+ def encode_shamed(value) when is_integer(value), do: value
440+ def encode_shamed(_), do: {:error, "Unexpected type when encoding Amphithyron.shamed"}
441+
442+ def decode_shelfworn(value) when is_integer(value), do: value
443+ def decode_shelfworn(_), do: {:error, "Unexpected type when decoding Amphithyron.shelfworn"}
444+
445+ def encode_shelfworn(value) when is_integer(value), do: value
446+ def encode_shelfworn(_), do: {:error, "Unexpected type when encoding Amphithyron.shelfworn"}
447+
448+ def decode_stagnum(value) when is_integer(value), do: value
449+ def decode_stagnum(_), do: {:error, "Unexpected type when decoding Amphithyron.stagnum"}
450+
451+ def encode_stagnum(value) when is_integer(value), do: value
452+ def encode_stagnum(_), do: {:error, "Unexpected type when encoding Amphithyron.stagnum"}
453+
454+ def decode_those(value) when is_integer(value), do: value
455+ def decode_those(_), do: {:error, "Unexpected type when decoding Amphithyron.those"}
456+
457+ def encode_those(value) when is_integer(value), do: value
458+ def encode_those(_), do: {:error, "Unexpected type when encoding Amphithyron.those"}
459+
460+ def decode_undecimal(value) when is_integer(value), do: value
461+ def decode_undecimal(_), do: {:error, "Unexpected type when decoding Amphithyron.undecimal"}
462+
463+ def encode_undecimal(value) when is_integer(value), do: value
464+ def encode_undecimal(_), do: {:error, "Unexpected type when encoding Amphithyron.undecimal"}
465+
332466 def from_map(m) do
333467 %Amphithyron{
334- akroasis: m["akroasis"],
335- antiphonical: m["antiphonical"],
336- basebred: m["basebred"],
337- catharticalness: m["catharticalness"],
338- chirotherium: m["Chirotherium"],
339- conductometric: m["conductometric"],
468+ akroasis: m["akroasis"] && decode_akroasis(m["akroasis"]),
469+ antiphonical: m["antiphonical"] && decode_antiphonical(m["antiphonical"]),
470+ basebred: m["basebred"] && decode_basebred(m["basebred"]),
471+ catharticalness: m["catharticalness"] && decode_catharticalness(m["catharticalness"]),
472+ chirotherium: m["Chirotherium"] && decode_chirotherium(m["Chirotherium"]),
473+ conductometric: m["conductometric"] && decode_conductometric(m["conductometric"]),
340474 disdiapason: m["disdiapason"] && decode_disdiapason(m["disdiapason"]),
341- ensilation: m["ensilation"],
342- eyebolt: m["eyebolt"],
343- fistulated: m["fistulated"],
344- heteropod: m["heteropod"],
475+ ensilation: m["ensilation"] && decode_ensilation(m["ensilation"]),
476+ eyebolt: m["eyebolt"] && decode_eyebolt(m["eyebolt"]),
477+ fistulated: m["fistulated"] && decode_fistulated(m["fistulated"]),
478+ heteropod: m["heteropod"] && decode_heteropod(m["heteropod"]),
345479 homocerc: m["homocerc"],
346- juniperus: m["Juniperus"],
347- labyrinthically: m["labyrinthically"],
348- martyrization: m["martyrization"],
349- mispolicy: m["mispolicy"],
350- multipara: m["multipara"],
351- nazirite: m["Nazirite"],
480+ juniperus: m["Juniperus"] && decode_juniperus(m["Juniperus"]),
481+ labyrinthically: m["labyrinthically"] && decode_labyrinthically(m["labyrinthically"]),
482+ martyrization: m["martyrization"] && decode_martyrization(m["martyrization"]),
483+ mispolicy: m["mispolicy"] && decode_mispolicy(m["mispolicy"]),
484+ multipara: m["multipara"] && decode_multipara(m["multipara"]),
485+ nazirite: m["Nazirite"] && decode_nazirite(m["Nazirite"]),
352486 nonbookish: m["nonbookish"],
353- possessorial: m["possessorial"],
354- shamed: m["shamed"],
355- shelfworn: m["shelfworn"],
356- stagnum: m["stagnum"],
357- those: m["Those"],
358- undecimal: m["undecimal"],
487+ possessorial: m["possessorial"] && decode_possessorial(m["possessorial"]),
488+ shamed: m["shamed"] && decode_shamed(m["shamed"]),
489+ shelfworn: m["shelfworn"] && decode_shelfworn(m["shelfworn"]),
490+ stagnum: m["stagnum"] && decode_stagnum(m["stagnum"]),
491+ those: m["Those"] && decode_those(m["Those"]),
492+ undecimal: m["undecimal"] && decode_undecimal(m["undecimal"]),
359493 }
360494 end
361495
@@ -1063,39 +1197,173 @@ defmodule DiscordiaClass do
10631197 wingle: integer() | nil
10641198 }
10651199
1200+ def decode_altaic(value) when is_integer(value), do: value
1201+ def decode_altaic(_), do: {:error, "Unexpected type when decoding DiscordiaClass.altaic"}
1202+
1203+ def encode_altaic(value) when is_integer(value), do: value
1204+ def encode_altaic(_), do: {:error, "Unexpected type when encoding DiscordiaClass.altaic"}
1205+
1206+ def decode_amoristic(value) when is_integer(value), do: value
1207+ def decode_amoristic(_), do: {:error, "Unexpected type when decoding DiscordiaClass.amoristic"}
1208+
1209+ def encode_amoristic(value) when is_integer(value), do: value
1210+ def encode_amoristic(_), do: {:error, "Unexpected type when encoding DiscordiaClass.amoristic"}
1211+
1212+ def decode_blennophthalmia(value) when is_integer(value), do: value
1213+ def decode_blennophthalmia(_), do: {:error, "Unexpected type when decoding DiscordiaClass.blennophthalmia"}
1214+
1215+ def encode_blennophthalmia(value) when is_integer(value), do: value
1216+ def encode_blennophthalmia(_), do: {:error, "Unexpected type when encoding DiscordiaClass.blennophthalmia"}
1217+
1218+ def decode_catharticalness(value) when is_float(value), do: value
1219+ def decode_catharticalness(value) when is_integer(value), do: value
1220+ def decode_catharticalness(_), do: {:error, "Unexpected type when decoding DiscordiaClass.catharticalness"}
1221+
1222+ def encode_catharticalness(value) when is_float(value), do: value
1223+ def encode_catharticalness(value) when is_integer(value), do: value
1224+ def encode_catharticalness(_), do: {:error, "Unexpected type when encoding DiscordiaClass.catharticalness"}
1225+
1226+ def decode_chirotherium(value) when is_integer(value), do: value
1227+ def decode_chirotherium(_), do: {:error, "Unexpected type when decoding DiscordiaClass.chirotherium"}
1228+
1229+ def encode_chirotherium(value) when is_integer(value), do: value
1230+ def encode_chirotherium(_), do: {:error, "Unexpected type when encoding DiscordiaClass.chirotherium"}
1231+
1232+ def decode_disciplinability(value) when is_integer(value), do: value
1233+ def decode_disciplinability(_), do: {:error, "Unexpected type when decoding DiscordiaClass.disciplinability"}
1234+
1235+ def encode_disciplinability(value) when is_integer(value), do: value
1236+ def encode_disciplinability(_), do: {:error, "Unexpected type when encoding DiscordiaClass.disciplinability"}
1237+
10661238 def decode_disdiapason(value) when is_binary(value), do: value
10671239 def decode_disdiapason(_), do: {:error, "Unexpected type when decoding DiscordiaClass.disdiapason"}
10681240
10691241 def encode_disdiapason(value) when is_binary(value), do: value
10701242 def encode_disdiapason(_), do: {:error, "Unexpected type when encoding DiscordiaClass.disdiapason"}
10711243
1244+ def decode_goofer(value) when is_integer(value), do: value
1245+ def decode_goofer(_), do: {:error, "Unexpected type when decoding DiscordiaClass.goofer"}
1246+
1247+ def encode_goofer(value) when is_integer(value), do: value
1248+ def encode_goofer(_), do: {:error, "Unexpected type when encoding DiscordiaClass.goofer"}
1249+
1250+ def decode_laryngograph(value) when is_integer(value), do: value
1251+ def decode_laryngograph(_), do: {:error, "Unexpected type when decoding DiscordiaClass.laryngograph"}
1252+
1253+ def encode_laryngograph(value) when is_integer(value), do: value
1254+ def encode_laryngograph(_), do: {:error, "Unexpected type when encoding DiscordiaClass.laryngograph"}
1255+
1256+ def decode_leucitis(value) when is_integer(value), do: value
1257+ def decode_leucitis(_), do: {:error, "Unexpected type when decoding DiscordiaClass.leucitis"}
1258+
1259+ def encode_leucitis(value) when is_integer(value), do: value
1260+ def encode_leucitis(_), do: {:error, "Unexpected type when encoding DiscordiaClass.leucitis"}
1261+
1262+ def decode_lymphocyst(value) when is_integer(value), do: value
1263+ def decode_lymphocyst(_), do: {:error, "Unexpected type when decoding DiscordiaClass.lymphocyst"}
1264+
1265+ def encode_lymphocyst(value) when is_integer(value), do: value
1266+ def encode_lymphocyst(_), do: {:error, "Unexpected type when encoding DiscordiaClass.lymphocyst"}
1267+
1268+ def decode_microcosmology(value) when is_integer(value), do: value
1269+ def decode_microcosmology(_), do: {:error, "Unexpected type when decoding DiscordiaClass.microcosmology"}
1270+
1271+ def encode_microcosmology(value) when is_integer(value), do: value
1272+ def encode_microcosmology(_), do: {:error, "Unexpected type when encoding DiscordiaClass.microcosmology"}
1273+
1274+ def decode_nauseation(value) when is_integer(value), do: value
1275+ def decode_nauseation(_), do: {:error, "Unexpected type when decoding DiscordiaClass.nauseation"}
1276+
1277+ def encode_nauseation(value) when is_integer(value), do: value
1278+ def encode_nauseation(_), do: {:error, "Unexpected type when encoding DiscordiaClass.nauseation"}
1279+
1280+ def decode_patarin(value) when is_integer(value), do: value
1281+ def decode_patarin(_), do: {:error, "Unexpected type when decoding DiscordiaClass.patarin"}
1282+
1283+ def encode_patarin(value) when is_integer(value), do: value
1284+ def encode_patarin(_), do: {:error, "Unexpected type when encoding DiscordiaClass.patarin"}
1285+
1286+ def decode_preliberal(value) when is_integer(value), do: value
1287+ def decode_preliberal(_), do: {:error, "Unexpected type when decoding DiscordiaClass.preliberal"}
1288+
1289+ def encode_preliberal(value) when is_integer(value), do: value
1290+ def encode_preliberal(_), do: {:error, "Unexpected type when encoding DiscordiaClass.preliberal"}
1291+
1292+ def decode_prettifier(value) when is_integer(value), do: value
1293+ def decode_prettifier(_), do: {:error, "Unexpected type when decoding DiscordiaClass.prettifier"}
1294+
1295+ def encode_prettifier(value) when is_integer(value), do: value
1296+ def encode_prettifier(_), do: {:error, "Unexpected type when encoding DiscordiaClass.prettifier"}
1297+
1298+ def decode_rangework(value) when is_integer(value), do: value
1299+ def decode_rangework(_), do: {:error, "Unexpected type when decoding DiscordiaClass.rangework"}
1300+
1301+ def encode_rangework(value) when is_integer(value), do: value
1302+ def encode_rangework(_), do: {:error, "Unexpected type when encoding DiscordiaClass.rangework"}
1303+
1304+ def decode_redient(value) when is_integer(value), do: value
1305+ def decode_redient(_), do: {:error, "Unexpected type when decoding DiscordiaClass.redient"}
1306+
1307+ def encode_redient(value) when is_integer(value), do: value
1308+ def encode_redient(_), do: {:error, "Unexpected type when encoding DiscordiaClass.redient"}
1309+
1310+ def decode_subfusiform(value) when is_integer(value), do: value
1311+ def decode_subfusiform(_), do: {:error, "Unexpected type when decoding DiscordiaClass.subfusiform"}
1312+
1313+ def encode_subfusiform(value) when is_integer(value), do: value
1314+ def encode_subfusiform(_), do: {:error, "Unexpected type when encoding DiscordiaClass.subfusiform"}
1315+
1316+ def decode_suicidical(value) when is_integer(value), do: value
1317+ def decode_suicidical(_), do: {:error, "Unexpected type when decoding DiscordiaClass.suicidical"}
1318+
1319+ def encode_suicidical(value) when is_integer(value), do: value
1320+ def encode_suicidical(_), do: {:error, "Unexpected type when encoding DiscordiaClass.suicidical"}
1321+
1322+ def decode_swow(value) when is_integer(value), do: value
1323+ def decode_swow(_), do: {:error, "Unexpected type when decoding DiscordiaClass.swow"}
1324+
1325+ def encode_swow(value) when is_integer(value), do: value
1326+ def encode_swow(_), do: {:error, "Unexpected type when encoding DiscordiaClass.swow"}
1327+
1328+ def decode_wastrel(value) when is_integer(value), do: value
1329+ def decode_wastrel(_), do: {:error, "Unexpected type when decoding DiscordiaClass.wastrel"}
1330+
1331+ def encode_wastrel(value) when is_integer(value), do: value
1332+ def encode_wastrel(_), do: {:error, "Unexpected type when encoding DiscordiaClass.wastrel"}
1333+
1334+ def decode_wingle(value) when is_integer(value), do: value
1335+ def decode_wingle(_), do: {:error, "Unexpected type when decoding DiscordiaClass.wingle"}
1336+
1337+ def encode_wingle(value) when is_integer(value), do: value
1338+ def encode_wingle(_), do: {:error, "Unexpected type when encoding DiscordiaClass.wingle"}
1339+
10721340 def from_map(m) do
10731341 %DiscordiaClass{
1074- altaic: m["Altaic"],
1075- amoristic: m["amoristic"],
1076- blennophthalmia: m["blennophthalmia"],
1077- catharticalness: m["catharticalness"],
1078- chirotherium: m["Chirotherium"],
1079- disciplinability: m["disciplinability"],
1342+ altaic: m["Altaic"] && decode_altaic(m["Altaic"]),
1343+ amoristic: m["amoristic"] && decode_amoristic(m["amoristic"]),
1344+ blennophthalmia: m["blennophthalmia"] && decode_blennophthalmia(m["blennophthalmia"]),
1345+ catharticalness: m["catharticalness"] && decode_catharticalness(m["catharticalness"]),
1346+ chirotherium: m["Chirotherium"] && decode_chirotherium(m["Chirotherium"]),
1347+ disciplinability: m["disciplinability"] && decode_disciplinability(m["disciplinability"]),
10801348 disdiapason: m["disdiapason"] && decode_disdiapason(m["disdiapason"]),
1081- goofer: m["goofer"],
1349+ goofer: m["goofer"] && decode_goofer(m["goofer"]),
10821350 homocerc: m["homocerc"],
1083- laryngograph: m["laryngograph"],
1084- leucitis: m["leucitis"],
1085- lymphocyst: m["lymphocyst"],
1086- microcosmology: m["microcosmology"],
1087- nauseation: m["nauseation"],
1351+ laryngograph: m["laryngograph"] && decode_laryngograph(m["laryngograph"]),
1352+ leucitis: m["leucitis"] && decode_leucitis(m["leucitis"]),
1353+ lymphocyst: m["lymphocyst"] && decode_lymphocyst(m["lymphocyst"]),
1354+ microcosmology: m["microcosmology"] && decode_microcosmology(m["microcosmology"]),
1355+ nauseation: m["nauseation"] && decode_nauseation(m["nauseation"]),
10881356 nonbookish: m["nonbookish"],
1089- patarin: m["Patarin"],
1090- preliberal: m["preliberal"],
1091- prettifier: m["prettifier"],
1092- rangework: m["rangework"],
1093- redient: m["redient"],
1094- subfusiform: m["subfusiform"],
1095- suicidical: m["suicidical"],
1096- swow: m["swow"],
1097- wastrel: m["wastrel"],
1098- wingle: m["wingle"],
1357+ patarin: m["Patarin"] && decode_patarin(m["Patarin"]),
1358+ preliberal: m["preliberal"] && decode_preliberal(m["preliberal"]),
1359+ prettifier: m["prettifier"] && decode_prettifier(m["prettifier"]),
1360+ rangework: m["rangework"] && decode_rangework(m["rangework"]),
1361+ redient: m["redient"] && decode_redient(m["redient"]),
1362+ subfusiform: m["subfusiform"] && decode_subfusiform(m["subfusiform"]),
1363+ suicidical: m["suicidical"] && decode_suicidical(m["suicidical"]),
1364+ swow: m["swow"] && decode_swow(m["swow"]),
1365+ wastrel: m["wastrel"] && decode_wastrel(m["wastrel"]),
1366+ wingle: m["wingle"] && decode_wingle(m["wingle"]),
10991367 }
11001368 end
11011369
@@ -1383,39 +1651,173 @@ defmodule LaviniaClass do
13831651 uproute: integer() | nil
13841652 }
13851653
1654+ def decode_agitable(value) when is_integer(value), do: value
1655+ def decode_agitable(_), do: {:error, "Unexpected type when decoding LaviniaClass.agitable"}
1656+
1657+ def encode_agitable(value) when is_integer(value), do: value
1658+ def encode_agitable(_), do: {:error, "Unexpected type when encoding LaviniaClass.agitable"}
1659+
1660+ def decode_asininity(value) when is_integer(value), do: value
1661+ def decode_asininity(_), do: {:error, "Unexpected type when decoding LaviniaClass.asininity"}
1662+
1663+ def encode_asininity(value) when is_integer(value), do: value
1664+ def encode_asininity(_), do: {:error, "Unexpected type when encoding LaviniaClass.asininity"}
1665+
1666+ def decode_benefiter(value) when is_integer(value), do: value
1667+ def decode_benefiter(_), do: {:error, "Unexpected type when decoding LaviniaClass.benefiter"}
1668+
1669+ def encode_benefiter(value) when is_integer(value), do: value
1670+ def encode_benefiter(_), do: {:error, "Unexpected type when encoding LaviniaClass.benefiter"}
1671+
1672+ def decode_bronzelike(value) when is_integer(value), do: value
1673+ def decode_bronzelike(_), do: {:error, "Unexpected type when decoding LaviniaClass.bronzelike"}
1674+
1675+ def encode_bronzelike(value) when is_integer(value), do: value
1676+ def encode_bronzelike(_), do: {:error, "Unexpected type when encoding LaviniaClass.bronzelike"}
1677+
1678+ def decode_catharticalness(value) when is_float(value), do: value
1679+ def decode_catharticalness(value) when is_integer(value), do: value
1680+ def decode_catharticalness(_), do: {:error, "Unexpected type when decoding LaviniaClass.catharticalness"}
1681+
1682+ def encode_catharticalness(value) when is_float(value), do: value
1683+ def encode_catharticalness(value) when is_integer(value), do: value
1684+ def encode_catharticalness(_), do: {:error, "Unexpected type when encoding LaviniaClass.catharticalness"}
1685+
1686+ def decode_chirotherium(value) when is_integer(value), do: value
1687+ def decode_chirotherium(_), do: {:error, "Unexpected type when decoding LaviniaClass.chirotherium"}
1688+
1689+ def encode_chirotherium(value) when is_integer(value), do: value
1690+ def encode_chirotherium(_), do: {:error, "Unexpected type when encoding LaviniaClass.chirotherium"}
1691+
1692+ def decode_cholesteatomatous(value) when is_integer(value), do: value
1693+ def decode_cholesteatomatous(_), do: {:error, "Unexpected type when decoding LaviniaClass.cholesteatomatous"}
1694+
1695+ def encode_cholesteatomatous(value) when is_integer(value), do: value
1696+ def encode_cholesteatomatous(_), do: {:error, "Unexpected type when encoding LaviniaClass.cholesteatomatous"}
1697+
1698+ def decode_deprivement(value) when is_integer(value), do: value
1699+ def decode_deprivement(_), do: {:error, "Unexpected type when decoding LaviniaClass.deprivement"}
1700+
1701+ def encode_deprivement(value) when is_integer(value), do: value
1702+ def encode_deprivement(_), do: {:error, "Unexpected type when encoding LaviniaClass.deprivement"}
1703+
13861704 def decode_disdiapason(value) when is_binary(value), do: value
13871705 def decode_disdiapason(_), do: {:error, "Unexpected type when decoding LaviniaClass.disdiapason"}
13881706
13891707 def encode_disdiapason(value) when is_binary(value), do: value
13901708 def encode_disdiapason(_), do: {:error, "Unexpected type when encoding LaviniaClass.disdiapason"}
13911709
1710+ def decode_flippantness(value) when is_integer(value), do: value
1711+ def decode_flippantness(_), do: {:error, "Unexpected type when decoding LaviniaClass.flippantness"}
1712+
1713+ def encode_flippantness(value) when is_integer(value), do: value
1714+ def encode_flippantness(_), do: {:error, "Unexpected type when encoding LaviniaClass.flippantness"}
1715+
1716+ def decode_fogproof(value) when is_integer(value), do: value
1717+ def decode_fogproof(_), do: {:error, "Unexpected type when decoding LaviniaClass.fogproof"}
1718+
1719+ def encode_fogproof(value) when is_integer(value), do: value
1720+ def encode_fogproof(_), do: {:error, "Unexpected type when encoding LaviniaClass.fogproof"}
1721+
1722+ def decode_merrymeeting(value) when is_integer(value), do: value
1723+ def decode_merrymeeting(_), do: {:error, "Unexpected type when decoding LaviniaClass.merrymeeting"}
1724+
1725+ def encode_merrymeeting(value) when is_integer(value), do: value
1726+ def encode_merrymeeting(_), do: {:error, "Unexpected type when encoding LaviniaClass.merrymeeting"}
1727+
1728+ def decode_overcareful(value) when is_integer(value), do: value
1729+ def decode_overcareful(_), do: {:error, "Unexpected type when decoding LaviniaClass.overcareful"}
1730+
1731+ def encode_overcareful(value) when is_integer(value), do: value
1732+ def encode_overcareful(_), do: {:error, "Unexpected type when encoding LaviniaClass.overcareful"}
1733+
1734+ def decode_panaris(value) when is_integer(value), do: value
1735+ def decode_panaris(_), do: {:error, "Unexpected type when decoding LaviniaClass.panaris"}
1736+
1737+ def encode_panaris(value) when is_integer(value), do: value
1738+ def encode_panaris(_), do: {:error, "Unexpected type when encoding LaviniaClass.panaris"}
1739+
1740+ def decode_preacceptance(value) when is_integer(value), do: value
1741+ def decode_preacceptance(_), do: {:error, "Unexpected type when decoding LaviniaClass.preacceptance"}
1742+
1743+ def encode_preacceptance(value) when is_integer(value), do: value
1744+ def encode_preacceptance(_), do: {:error, "Unexpected type when encoding LaviniaClass.preacceptance"}
1745+
1746+ def decode_quinoxaline(value) when is_integer(value), do: value
1747+ def decode_quinoxaline(_), do: {:error, "Unexpected type when decoding LaviniaClass.quinoxaline"}
1748+
1749+ def encode_quinoxaline(value) when is_integer(value), do: value
1750+ def encode_quinoxaline(_), do: {:error, "Unexpected type when encoding LaviniaClass.quinoxaline"}
1751+
1752+ def decode_sig(value) when is_integer(value), do: value
1753+ def decode_sig(_), do: {:error, "Unexpected type when decoding LaviniaClass.sig"}
1754+
1755+ def encode_sig(value) when is_integer(value), do: value
1756+ def encode_sig(_), do: {:error, "Unexpected type when encoding LaviniaClass.sig"}
1757+
1758+ def decode_superconfusion(value) when is_integer(value), do: value
1759+ def decode_superconfusion(_), do: {:error, "Unexpected type when decoding LaviniaClass.superconfusion"}
1760+
1761+ def encode_superconfusion(value) when is_integer(value), do: value
1762+ def encode_superconfusion(_), do: {:error, "Unexpected type when encoding LaviniaClass.superconfusion"}
1763+
1764+ def decode_tacana(value) when is_integer(value), do: value
1765+ def decode_tacana(_), do: {:error, "Unexpected type when decoding LaviniaClass.tacana"}
1766+
1767+ def encode_tacana(value) when is_integer(value), do: value
1768+ def encode_tacana(_), do: {:error, "Unexpected type when encoding LaviniaClass.tacana"}
1769+
1770+ def decode_tillotter(value) when is_integer(value), do: value
1771+ def decode_tillotter(_), do: {:error, "Unexpected type when decoding LaviniaClass.tillotter"}
1772+
1773+ def encode_tillotter(value) when is_integer(value), do: value
1774+ def encode_tillotter(_), do: {:error, "Unexpected type when encoding LaviniaClass.tillotter"}
1775+
1776+ def decode_tranquillize(value) when is_integer(value), do: value
1777+ def decode_tranquillize(_), do: {:error, "Unexpected type when decoding LaviniaClass.tranquillize"}
1778+
1779+ def encode_tranquillize(value) when is_integer(value), do: value
1780+ def encode_tranquillize(_), do: {:error, "Unexpected type when encoding LaviniaClass.tranquillize"}
1781+
1782+ def decode_unquestionable(value) when is_integer(value), do: value
1783+ def decode_unquestionable(_), do: {:error, "Unexpected type when decoding LaviniaClass.unquestionable"}
1784+
1785+ def encode_unquestionable(value) when is_integer(value), do: value
1786+ def encode_unquestionable(_), do: {:error, "Unexpected type when encoding LaviniaClass.unquestionable"}
1787+
1788+ def decode_uproute(value) when is_integer(value), do: value
1789+ def decode_uproute(_), do: {:error, "Unexpected type when decoding LaviniaClass.uproute"}
1790+
1791+ def encode_uproute(value) when is_integer(value), do: value
1792+ def encode_uproute(_), do: {:error, "Unexpected type when encoding LaviniaClass.uproute"}
1793+
13921794 def from_map(m) do
13931795 %LaviniaClass{
1394- agitable: m["agitable"],
1395- asininity: m["asininity"],
1396- benefiter: m["benefiter"],
1397- bronzelike: m["bronzelike"],
1398- catharticalness: m["catharticalness"],
1399- chirotherium: m["Chirotherium"],
1400- cholesteatomatous: m["cholesteatomatous"],
1401- deprivement: m["deprivement"],
1796+ agitable: m["agitable"] && decode_agitable(m["agitable"]),
1797+ asininity: m["asininity"] && decode_asininity(m["asininity"]),
1798+ benefiter: m["benefiter"] && decode_benefiter(m["benefiter"]),
1799+ bronzelike: m["bronzelike"] && decode_bronzelike(m["bronzelike"]),
1800+ catharticalness: m["catharticalness"] && decode_catharticalness(m["catharticalness"]),
1801+ chirotherium: m["Chirotherium"] && decode_chirotherium(m["Chirotherium"]),
1802+ cholesteatomatous: m["cholesteatomatous"] && decode_cholesteatomatous(m["cholesteatomatous"]),
1803+ deprivement: m["deprivement"] && decode_deprivement(m["deprivement"]),
14021804 disdiapason: m["disdiapason"] && decode_disdiapason(m["disdiapason"]),
1403- flippantness: m["flippantness"],
1404- fogproof: m["fogproof"],
1805+ flippantness: m["flippantness"] && decode_flippantness(m["flippantness"]),
1806+ fogproof: m["fogproof"] && decode_fogproof(m["fogproof"]),
14051807 homocerc: m["homocerc"],
1406- merrymeeting: m["merrymeeting"],
1808+ merrymeeting: m["merrymeeting"] && decode_merrymeeting(m["merrymeeting"]),
14071809 nonbookish: m["nonbookish"],
1408- overcareful: m["overcareful"],
1409- panaris: m["panaris"],
1410- preacceptance: m["preacceptance"],
1411- quinoxaline: m["quinoxaline"],
1412- sig: m["sig"],
1413- superconfusion: m["superconfusion"],
1414- tacana: m["Tacana"],
1415- tillotter: m["tillotter"],
1416- tranquillize: m["tranquillize"],
1417- unquestionable: m["unquestionable"],
1418- uproute: m["uproute"],
1810+ overcareful: m["overcareful"] && decode_overcareful(m["overcareful"]),
1811+ panaris: m["panaris"] && decode_panaris(m["panaris"]),
1812+ preacceptance: m["preacceptance"] && decode_preacceptance(m["preacceptance"]),
1813+ quinoxaline: m["quinoxaline"] && decode_quinoxaline(m["quinoxaline"]),
1814+ sig: m["sig"] && decode_sig(m["sig"]),
1815+ superconfusion: m["superconfusion"] && decode_superconfusion(m["superconfusion"]),
1816+ tacana: m["Tacana"] && decode_tacana(m["Tacana"]),
1817+ tillotter: m["tillotter"] && decode_tillotter(m["tillotter"]),
1818+ tranquillize: m["tranquillize"] && decode_tranquillize(m["tranquillize"]),
1819+ unquestionable: m["unquestionable"] && decode_unquestionable(m["unquestionable"]),
1820+ uproute: m["uproute"] && decode_uproute(m["uproute"]),
14191821 }
14201822 end
Test case

test/inputs/json/priority/combinations3.json

1 generated file · +500 −70
Melixirdefault / QuickType.ex+500 −70
@@ -666,39 +666,173 @@ defmodule LupusClass do
666666 vendible: integer() | nil
667667 }
668668
669+ def decode_catharticalness(value) when is_float(value), do: value
670+ def decode_catharticalness(value) when is_integer(value), do: value
671+ def decode_catharticalness(_), do: {:error, "Unexpected type when decoding LupusClass.catharticalness"}
672+
673+ def encode_catharticalness(value) when is_float(value), do: value
674+ def encode_catharticalness(value) when is_integer(value), do: value
675+ def encode_catharticalness(_), do: {:error, "Unexpected type when encoding LupusClass.catharticalness"}
676+
677+ def decode_chirotherium(value) when is_integer(value), do: value
678+ def decode_chirotherium(_), do: {:error, "Unexpected type when decoding LupusClass.chirotherium"}
679+
680+ def encode_chirotherium(value) when is_integer(value), do: value
681+ def encode_chirotherium(_), do: {:error, "Unexpected type when encoding LupusClass.chirotherium"}
682+
683+ def decode_chlorioninae(value) when is_integer(value), do: value
684+ def decode_chlorioninae(_), do: {:error, "Unexpected type when decoding LupusClass.chlorioninae"}
685+
686+ def encode_chlorioninae(value) when is_integer(value), do: value
687+ def encode_chlorioninae(_), do: {:error, "Unexpected type when encoding LupusClass.chlorioninae"}
688+
689+ def decode_corvinae(value) when is_integer(value), do: value
690+ def decode_corvinae(_), do: {:error, "Unexpected type when decoding LupusClass.corvinae"}
691+
692+ def encode_corvinae(value) when is_integer(value), do: value
693+ def encode_corvinae(_), do: {:error, "Unexpected type when encoding LupusClass.corvinae"}
694+
695+ def decode_crassina(value) when is_integer(value), do: value
696+ def decode_crassina(_), do: {:error, "Unexpected type when decoding LupusClass.crassina"}
697+
698+ def encode_crassina(value) when is_integer(value), do: value
699+ def encode_crassina(_), do: {:error, "Unexpected type when encoding LupusClass.crassina"}
700+
669701 def decode_disdiapason(value) when is_binary(value), do: value
670702 def decode_disdiapason(_), do: {:error, "Unexpected type when decoding LupusClass.disdiapason"}
671703
672704 def encode_disdiapason(value) when is_binary(value), do: value
673705 def encode_disdiapason(_), do: {:error, "Unexpected type when encoding LupusClass.disdiapason"}
674706
707+ def decode_exiguity(value) when is_integer(value), do: value
708+ def decode_exiguity(_), do: {:error, "Unexpected type when decoding LupusClass.exiguity"}
709+
710+ def encode_exiguity(value) when is_integer(value), do: value
711+ def encode_exiguity(_), do: {:error, "Unexpected type when encoding LupusClass.exiguity"}
712+
713+ def decode_farcist(value) when is_integer(value), do: value
714+ def decode_farcist(_), do: {:error, "Unexpected type when decoding LupusClass.farcist"}
715+
716+ def encode_farcist(value) when is_integer(value), do: value
717+ def encode_farcist(_), do: {:error, "Unexpected type when encoding LupusClass.farcist"}
718+
719+ def decode_holographical(value) when is_integer(value), do: value
720+ def decode_holographical(_), do: {:error, "Unexpected type when decoding LupusClass.holographical"}
721+
722+ def encode_holographical(value) when is_integer(value), do: value
723+ def encode_holographical(_), do: {:error, "Unexpected type when encoding LupusClass.holographical"}
724+
725+ def decode_ichthyophagan(value) when is_integer(value), do: value
726+ def decode_ichthyophagan(_), do: {:error, "Unexpected type when decoding LupusClass.ichthyophagan"}
727+
728+ def encode_ichthyophagan(value) when is_integer(value), do: value
729+ def encode_ichthyophagan(_), do: {:error, "Unexpected type when encoding LupusClass.ichthyophagan"}
730+
731+ def decode_implacable(value) when is_integer(value), do: value
732+ def decode_implacable(_), do: {:error, "Unexpected type when decoding LupusClass.implacable"}
733+
734+ def encode_implacable(value) when is_integer(value), do: value
735+ def encode_implacable(_), do: {:error, "Unexpected type when encoding LupusClass.implacable"}
736+
737+ def decode_outshiner(value) when is_integer(value), do: value
738+ def decode_outshiner(_), do: {:error, "Unexpected type when decoding LupusClass.outshiner"}
739+
740+ def encode_outshiner(value) when is_integer(value), do: value
741+ def encode_outshiner(_), do: {:error, "Unexpected type when encoding LupusClass.outshiner"}
742+
743+ def decode_overweather(value) when is_integer(value), do: value
744+ def decode_overweather(_), do: {:error, "Unexpected type when decoding LupusClass.overweather"}
745+
746+ def encode_overweather(value) when is_integer(value), do: value
747+ def encode_overweather(_), do: {:error, "Unexpected type when encoding LupusClass.overweather"}
748+
749+ def decode_protonegroid(value) when is_integer(value), do: value
750+ def decode_protonegroid(_), do: {:error, "Unexpected type when decoding LupusClass.protonegroid"}
751+
752+ def encode_protonegroid(value) when is_integer(value), do: value
753+ def encode_protonegroid(_), do: {:error, "Unexpected type when encoding LupusClass.protonegroid"}
754+
755+ def decode_shallowish(value) when is_integer(value), do: value
756+ def decode_shallowish(_), do: {:error, "Unexpected type when decoding LupusClass.shallowish"}
757+
758+ def encode_shallowish(value) when is_integer(value), do: value
759+ def encode_shallowish(_), do: {:error, "Unexpected type when encoding LupusClass.shallowish"}
760+
761+ def decode_snoke(value) when is_integer(value), do: value
762+ def decode_snoke(_), do: {:error, "Unexpected type when decoding LupusClass.snoke"}
763+
764+ def encode_snoke(value) when is_integer(value), do: value
765+ def encode_snoke(_), do: {:error, "Unexpected type when encoding LupusClass.snoke"}
766+
767+ def decode_snout(value) when is_integer(value), do: value
768+ def decode_snout(_), do: {:error, "Unexpected type when decoding LupusClass.snout"}
769+
770+ def encode_snout(value) when is_integer(value), do: value
771+ def encode_snout(_), do: {:error, "Unexpected type when encoding LupusClass.snout"}
772+
773+ def decode_surveillance(value) when is_integer(value), do: value
774+ def decode_surveillance(_), do: {:error, "Unexpected type when decoding LupusClass.surveillance"}
775+
776+ def encode_surveillance(value) when is_integer(value), do: value
777+ def encode_surveillance(_), do: {:error, "Unexpected type when encoding LupusClass.surveillance"}
778+
779+ def decode_threshingtime(value) when is_integer(value), do: value
780+ def decode_threshingtime(_), do: {:error, "Unexpected type when decoding LupusClass.threshingtime"}
781+
782+ def encode_threshingtime(value) when is_integer(value), do: value
783+ def encode_threshingtime(_), do: {:error, "Unexpected type when encoding LupusClass.threshingtime"}
784+
785+ def decode_thysanocarpus(value) when is_integer(value), do: value
786+ def decode_thysanocarpus(_), do: {:error, "Unexpected type when decoding LupusClass.thysanocarpus"}
787+
788+ def encode_thysanocarpus(value) when is_integer(value), do: value
789+ def encode_thysanocarpus(_), do: {:error, "Unexpected type when encoding LupusClass.thysanocarpus"}
790+
791+ def decode_unsignificantly(value) when is_integer(value), do: value
792+ def decode_unsignificantly(_), do: {:error, "Unexpected type when decoding LupusClass.unsignificantly"}
793+
794+ def encode_unsignificantly(value) when is_integer(value), do: value
795+ def encode_unsignificantly(_), do: {:error, "Unexpected type when encoding LupusClass.unsignificantly"}
796+
797+ def decode_unsnap(value) when is_integer(value), do: value
798+ def decode_unsnap(_), do: {:error, "Unexpected type when decoding LupusClass.unsnap"}
799+
800+ def encode_unsnap(value) when is_integer(value), do: value
801+ def encode_unsnap(_), do: {:error, "Unexpected type when encoding LupusClass.unsnap"}
802+
803+ def decode_vendible(value) when is_integer(value), do: value
804+ def decode_vendible(_), do: {:error, "Unexpected type when decoding LupusClass.vendible"}
805+
806+ def encode_vendible(value) when is_integer(value), do: value
807+ def encode_vendible(_), do: {:error, "Unexpected type when encoding LupusClass.vendible"}
808+
675809 def from_map(m) do
676810 %LupusClass{
677- catharticalness: m["catharticalness"],
678- chirotherium: m["Chirotherium"],
679- chlorioninae: m["Chlorioninae"],
680- corvinae: m["Corvinae"],
681- crassina: m["Crassina"],
811+ catharticalness: m["catharticalness"] && decode_catharticalness(m["catharticalness"]),
812+ chirotherium: m["Chirotherium"] && decode_chirotherium(m["Chirotherium"]),
813+ chlorioninae: m["Chlorioninae"] && decode_chlorioninae(m["Chlorioninae"]),
814+ corvinae: m["Corvinae"] && decode_corvinae(m["Corvinae"]),
815+ crassina: m["Crassina"] && decode_crassina(m["Crassina"]),
682816 disdiapason: m["disdiapason"] && decode_disdiapason(m["disdiapason"]),
683- exiguity: m["exiguity"],
684- farcist: m["farcist"],
685- holographical: m["holographical"],
817+ exiguity: m["exiguity"] && decode_exiguity(m["exiguity"]),
818+ farcist: m["farcist"] && decode_farcist(m["farcist"]),
819+ holographical: m["holographical"] && decode_holographical(m["holographical"]),
686820 homocerc: m["homocerc"],
687- ichthyophagan: m["ichthyophagan"],
688- implacable: m["implacable"],
821+ ichthyophagan: m["ichthyophagan"] && decode_ichthyophagan(m["ichthyophagan"]),
822+ implacable: m["implacable"] && decode_implacable(m["implacable"]),
689823 nonbookish: m["nonbookish"],
690- outshiner: m["outshiner"],
691- overweather: m["overweather"],
692- protonegroid: m["protonegroid"],
693- shallowish: m["shallowish"],
694- snoke: m["snoke"],
695- snout: m["snout"],
696- surveillance: m["surveillance"],
697- threshingtime: m["threshingtime"],
698- thysanocarpus: m["Thysanocarpus"],
699- unsignificantly: m["unsignificantly"],
700- unsnap: m["unsnap"],
701- vendible: m["vendible"],
824+ outshiner: m["outshiner"] && decode_outshiner(m["outshiner"]),
825+ overweather: m["overweather"] && decode_overweather(m["overweather"]),
826+ protonegroid: m["protonegroid"] && decode_protonegroid(m["protonegroid"]),
827+ shallowish: m["shallowish"] && decode_shallowish(m["shallowish"]),
828+ snoke: m["snoke"] && decode_snoke(m["snoke"]),
829+ snout: m["snout"] && decode_snout(m["snout"]),
830+ surveillance: m["surveillance"] && decode_surveillance(m["surveillance"]),
831+ threshingtime: m["threshingtime"] && decode_threshingtime(m["threshingtime"]),
832+ thysanocarpus: m["Thysanocarpus"] && decode_thysanocarpus(m["Thysanocarpus"]),
833+ unsignificantly: m["unsignificantly"] && decode_unsignificantly(m["unsignificantly"]),
834+ unsnap: m["unsnap"] && decode_unsnap(m["unsnap"]),
835+ vendible: m["vendible"] && decode_vendible(m["vendible"]),
702836 }
703837 end
704838
@@ -796,57 +930,191 @@ defmodule Maslin do
796930 unjudiciously: nil | nil
797931 }
798932
933+ def decode_alicant(value) when is_integer(value), do: value
934+ def decode_alicant(_), do: {:error, "Unexpected type when decoding Maslin.alicant"}
935+
936+ def encode_alicant(value) when is_integer(value), do: value
937+ def encode_alicant(_), do: {:error, "Unexpected type when encoding Maslin.alicant"}
938+
939+ def decode_anticorrosive(value) when is_integer(value), do: value
940+ def decode_anticorrosive(_), do: {:error, "Unexpected type when decoding Maslin.anticorrosive"}
941+
942+ def encode_anticorrosive(value) when is_integer(value), do: value
943+ def encode_anticorrosive(_), do: {:error, "Unexpected type when encoding Maslin.anticorrosive"}
944+
945+ def decode_be(value) when is_integer(value), do: value
946+ def decode_be(_), do: {:error, "Unexpected type when decoding Maslin.be"}
947+
948+ def encode_be(value) when is_integer(value), do: value
949+ def encode_be(_), do: {:error, "Unexpected type when encoding Maslin.be"}
950+
951+ def decode_catharticalness(value) when is_float(value), do: value
952+ def decode_catharticalness(value) when is_integer(value), do: value
953+ def decode_catharticalness(_), do: {:error, "Unexpected type when decoding Maslin.catharticalness"}
954+
955+ def encode_catharticalness(value) when is_float(value), do: value
956+ def encode_catharticalness(value) when is_integer(value), do: value
957+ def encode_catharticalness(_), do: {:error, "Unexpected type when encoding Maslin.catharticalness"}
958+
959+ def decode_chirotherium(value) when is_integer(value), do: value
960+ def decode_chirotherium(_), do: {:error, "Unexpected type when decoding Maslin.chirotherium"}
961+
962+ def encode_chirotherium(value) when is_integer(value), do: value
963+ def encode_chirotherium(_), do: {:error, "Unexpected type when encoding Maslin.chirotherium"}
964+
965+ def decode_chub(value) when is_integer(value), do: value
966+ def decode_chub(_), do: {:error, "Unexpected type when decoding Maslin.chub"}
967+
968+ def encode_chub(value) when is_integer(value), do: value
969+ def encode_chub(_), do: {:error, "Unexpected type when encoding Maslin.chub"}
970+
971+ def decode_cuprosilicon(value) when is_integer(value), do: value
972+ def decode_cuprosilicon(_), do: {:error, "Unexpected type when decoding Maslin.cuprosilicon"}
973+
974+ def encode_cuprosilicon(value) when is_integer(value), do: value
975+ def encode_cuprosilicon(_), do: {:error, "Unexpected type when encoding Maslin.cuprosilicon"}
976+
977+ def decode_curtailedly(value) when is_integer(value), do: value
978+ def decode_curtailedly(_), do: {:error, "Unexpected type when decoding Maslin.curtailedly"}
979+
980+ def encode_curtailedly(value) when is_integer(value), do: value
981+ def encode_curtailedly(_), do: {:error, "Unexpected type when encoding Maslin.curtailedly"}
982+
983+ def decode_dellenite(value) when is_integer(value), do: value
984+ def decode_dellenite(_), do: {:error, "Unexpected type when decoding Maslin.dellenite"}
985+
986+ def encode_dellenite(value) when is_integer(value), do: value
987+ def encode_dellenite(_), do: {:error, "Unexpected type when encoding Maslin.dellenite"}
988+
989+ def decode_dimitry(value) when is_integer(value), do: value
990+ def decode_dimitry(_), do: {:error, "Unexpected type when decoding Maslin.dimitry"}
991+
992+ def encode_dimitry(value) when is_integer(value), do: value
993+ def encode_dimitry(_), do: {:error, "Unexpected type when encoding Maslin.dimitry"}
994+
799995 def decode_disdiapason(value) when is_binary(value), do: value
800996 def decode_disdiapason(_), do: {:error, "Unexpected type when decoding Maslin.disdiapason"}
801997
802998 def encode_disdiapason(value) when is_binary(value), do: value
803999 def encode_disdiapason(_), do: {:error, "Unexpected type when encoding Maslin.disdiapason"}
8041000
1001+ def decode_ethmoiditis(value) when is_integer(value), do: value
1002+ def decode_ethmoiditis(_), do: {:error, "Unexpected type when decoding Maslin.ethmoiditis"}
1003+
1004+ def encode_ethmoiditis(value) when is_integer(value), do: value
1005+ def encode_ethmoiditis(_), do: {:error, "Unexpected type when encoding Maslin.ethmoiditis"}
1006+
1007+ def decode_goatherd(value) when is_integer(value), do: value
1008+ def decode_goatherd(_), do: {:error, "Unexpected type when decoding Maslin.goatherd"}
1009+
1010+ def encode_goatherd(value) when is_integer(value), do: value
1011+ def encode_goatherd(_), do: {:error, "Unexpected type when encoding Maslin.goatherd"}
1012+
1013+ def decode_hammerdress(value) when is_integer(value), do: value
1014+ def decode_hammerdress(_), do: {:error, "Unexpected type when decoding Maslin.hammerdress"}
1015+
1016+ def encode_hammerdress(value) when is_integer(value), do: value
1017+ def encode_hammerdress(_), do: {:error, "Unexpected type when encoding Maslin.hammerdress"}
1018+
1019+ def decode_lacunosity(value) when is_integer(value), do: value
1020+ def decode_lacunosity(_), do: {:error, "Unexpected type when decoding Maslin.lacunosity"}
1021+
1022+ def encode_lacunosity(value) when is_integer(value), do: value
1023+ def encode_lacunosity(_), do: {:error, "Unexpected type when encoding Maslin.lacunosity"}
1024+
1025+ def decode_mameliere(value) when is_integer(value), do: value
1026+ def decode_mameliere(_), do: {:error, "Unexpected type when decoding Maslin.mameliere"}
1027+
1028+ def encode_mameliere(value) when is_integer(value), do: value
1029+ def encode_mameliere(_), do: {:error, "Unexpected type when encoding Maslin.mameliere"}
1030+
1031+ def decode_oafishly(value) when is_integer(value), do: value
1032+ def decode_oafishly(_), do: {:error, "Unexpected type when decoding Maslin.oafishly"}
1033+
1034+ def encode_oafishly(value) when is_integer(value), do: value
1035+ def encode_oafishly(_), do: {:error, "Unexpected type when encoding Maslin.oafishly"}
1036+
1037+ def decode_saccharulmic(value) when is_integer(value), do: value
1038+ def decode_saccharulmic(_), do: {:error, "Unexpected type when decoding Maslin.saccharulmic"}
1039+
1040+ def encode_saccharulmic(value) when is_integer(value), do: value
1041+ def encode_saccharulmic(_), do: {:error, "Unexpected type when encoding Maslin.saccharulmic"}
1042+
1043+ def decode_scowlful(value) when is_integer(value), do: value
1044+ def decode_scowlful(_), do: {:error, "Unexpected type when decoding Maslin.scowlful"}
1045+
1046+ def encode_scowlful(value) when is_integer(value), do: value
1047+ def encode_scowlful(_), do: {:error, "Unexpected type when encoding Maslin.scowlful"}
1048+
1049+ def decode_sphaeridial(value) when is_integer(value), do: value
1050+ def decode_sphaeridial(_), do: {:error, "Unexpected type when decoding Maslin.sphaeridial"}
1051+
1052+ def encode_sphaeridial(value) when is_integer(value), do: value
1053+ def encode_sphaeridial(_), do: {:error, "Unexpected type when encoding Maslin.sphaeridial"}
1054+
1055+ def decode_subsecive(value) when is_integer(value), do: value
1056+ def decode_subsecive(_), do: {:error, "Unexpected type when decoding Maslin.subsecive"}
1057+
1058+ def encode_subsecive(value) when is_integer(value), do: value
1059+ def encode_subsecive(_), do: {:error, "Unexpected type when encoding Maslin.subsecive"}
1060+
1061+ def decode_trachyglossate(value) when is_integer(value), do: value
1062+ def decode_trachyglossate(_), do: {:error, "Unexpected type when decoding Maslin.trachyglossate"}
1063+
1064+ def encode_trachyglossate(value) when is_integer(value), do: value
1065+ def encode_trachyglossate(_), do: {:error, "Unexpected type when encoding Maslin.trachyglossate"}
1066+
1067+ def decode_unassuaged(value) when is_integer(value), do: value
1068+ def decode_unassuaged(_), do: {:error, "Unexpected type when decoding Maslin.unassuaged"}
1069+
1070+ def encode_unassuaged(value) when is_integer(value), do: value
1071+ def encode_unassuaged(_), do: {:error, "Unexpected type when encoding Maslin.unassuaged"}
1072+
8051073 def from_map(m) do
8061074 %Maslin{
807- alicant: m["Alicant"],
1075+ alicant: m["Alicant"] && decode_alicant(m["Alicant"]),
8081076 antiatonement: m["antiatonement"],
809- anticorrosive: m["anticorrosive"],
1077+ anticorrosive: m["anticorrosive"] && decode_anticorrosive(m["anticorrosive"]),
8101078 aphidozer: m["aphidozer"],
8111079 bakuninist: m["Bakuninist"],
812- be: m["be"],
813- catharticalness: m["catharticalness"],
814- chirotherium: m["Chirotherium"],
815- chub: m["chub"],
816- cuprosilicon: m["cuprosilicon"],
817- curtailedly: m["curtailedly"],
818- dellenite: m["dellenite"],
819- dimitry: m["Dimitry"],
1080+ be: m["be"] && decode_be(m["be"]),
1081+ catharticalness: m["catharticalness"] && decode_catharticalness(m["catharticalness"]),
1082+ chirotherium: m["Chirotherium"] && decode_chirotherium(m["Chirotherium"]),
1083+ chub: m["chub"] && decode_chub(m["chub"]),
1084+ cuprosilicon: m["cuprosilicon"] && decode_cuprosilicon(m["cuprosilicon"]),
1085+ curtailedly: m["curtailedly"] && decode_curtailedly(m["curtailedly"]),
1086+ dellenite: m["dellenite"] && decode_dellenite(m["dellenite"]),
1087+ dimitry: m["Dimitry"] && decode_dimitry(m["Dimitry"]),
8201088 disdiapason: m["disdiapason"] && decode_disdiapason(m["disdiapason"]),
8211089 edifying: m["edifying"],
822- ethmoiditis: m["ethmoiditis"],
1090+ ethmoiditis: m["ethmoiditis"] && decode_ethmoiditis(m["ethmoiditis"]),
8231091 gastralgy: m["gastralgy"],
824- goatherd: m["goatherd"],
825- hammerdress: m["hammerdress"],
1092+ goatherd: m["goatherd"] && decode_goatherd(m["goatherd"]),
1093+ hammerdress: m["hammerdress"] && decode_hammerdress(m["hammerdress"]),
8261094 hangfire: m["hangfire"],
8271095 homocerc: m["homocerc"],
828- lacunosity: m["lacunosity"],
1096+ lacunosity: m["lacunosity"] && decode_lacunosity(m["lacunosity"]),
8291097 longiloquence: m["longiloquence"],
830- mameliere: m["mameliere"],
1098+ mameliere: m["mameliere"] && decode_mameliere(m["mameliere"]),
8311099 motherless: m["motherless"],
8321100 nonbookish: m["nonbookish"],
8331101 noncorrodible: m["noncorrodible"],
8341102 nonsensicality: m["nonsensicality"],
835- oafishly: m["oafishly"],
1103+ oafishly: m["oafishly"] && decode_oafishly(m["oafishly"]),
8361104 pfund: m["pfund"],
8371105 preadvisory: m["preadvisory"],
8381106 retroflexed: m["retroflexed"],
839- saccharulmic: m["saccharulmic"],
840- scowlful: m["scowlful"],
1107+ saccharulmic: m["saccharulmic"] && decode_saccharulmic(m["saccharulmic"]),
1108+ scowlful: m["scowlful"] && decode_scowlful(m["scowlful"]),
8411109 secluded: m["secluded"],
8421110 slackage: m["slackage"],
843- sphaeridial: m["sphaeridial"],
1111+ sphaeridial: m["sphaeridial"] && decode_sphaeridial(m["sphaeridial"]),
8441112 spondulics: m["spondulics"],
845- subsecive: m["subsecive"],
1113+ subsecive: m["subsecive"] && decode_subsecive(m["subsecive"]),
8461114 swellmobsman: m["swellmobsman"],
847- trachyglossate: m["trachyglossate"],
1115+ trachyglossate: m["trachyglossate"] && decode_trachyglossate(m["trachyglossate"]),
8481116 trialogue: m["trialogue"],
849- unassuaged: m["unassuaged"],
1117+ unassuaged: m["unassuaged"] && decode_unassuaged(m["unassuaged"]),
8501118 ungross: m["ungross"],
8511119 unjudiciously: m["unjudiciously"],
8521120 }
@@ -1023,6 +1291,20 @@ defmodule MonotheisticallyClass do
10231291 whitestone: nil | nil
10241292 }
10251293
1294+ def decode_catharticalness(value) when is_float(value), do: value
1295+ def decode_catharticalness(value) when is_integer(value), do: value
1296+ def decode_catharticalness(_), do: {:error, "Unexpected type when decoding MonotheisticallyClass.catharticalness"}
1297+
1298+ def encode_catharticalness(value) when is_float(value), do: value
1299+ def encode_catharticalness(value) when is_integer(value), do: value
1300+ def encode_catharticalness(_), do: {:error, "Unexpected type when encoding MonotheisticallyClass.catharticalness"}
1301+
1302+ def decode_chirotherium(value) when is_integer(value), do: value
1303+ def decode_chirotherium(_), do: {:error, "Unexpected type when decoding MonotheisticallyClass.chirotherium"}
1304+
1305+ def encode_chirotherium(value) when is_integer(value), do: value
1306+ def encode_chirotherium(_), do: {:error, "Unexpected type when encoding MonotheisticallyClass.chirotherium"}
1307+
10261308 def decode_disdiapason(value) when is_binary(value), do: value
10271309 def decode_disdiapason(_), do: {:error, "Unexpected type when decoding MonotheisticallyClass.disdiapason"}
10281310
@@ -1032,9 +1314,9 @@ defmodule MonotheisticallyClass do
10321314 def from_map(m) do
10331315 %MonotheisticallyClass{
10341316 blaspheme: m["blaspheme"],
1035- catharticalness: m["catharticalness"],
1317+ catharticalness: m["catharticalness"] && decode_catharticalness(m["catharticalness"]),
10361318 celiosalpingectomy: m["celiosalpingectomy"],
1037- chirotherium: m["Chirotherium"],
1319+ chirotherium: m["Chirotherium"] && decode_chirotherium(m["Chirotherium"]),
10381320 consummativeness: m["consummativeness"],
10391321 disdiapason: m["disdiapason"] && decode_disdiapason(m["disdiapason"]),
10401322 egestive: m["egestive"],
@@ -1630,39 +1912,173 @@ defmodule PiaculumClass do
16301912 zipper: integer() | nil
16311913 }
16321914
1915+ def decode_alada(value) when is_integer(value), do: value
1916+ def decode_alada(_), do: {:error, "Unexpected type when decoding PiaculumClass.alada"}
1917+
1918+ def encode_alada(value) when is_integer(value), do: value
1919+ def encode_alada(_), do: {:error, "Unexpected type when encoding PiaculumClass.alada"}
1920+
1921+ def decode_amphistomous(value) when is_integer(value), do: value
1922+ def decode_amphistomous(_), do: {:error, "Unexpected type when decoding PiaculumClass.amphistomous"}
1923+
1924+ def encode_amphistomous(value) when is_integer(value), do: value
1925+ def encode_amphistomous(_), do: {:error, "Unexpected type when encoding PiaculumClass.amphistomous"}
1926+
1927+ def decode_boysenberry(value) when is_integer(value), do: value
1928+ def decode_boysenberry(_), do: {:error, "Unexpected type when decoding PiaculumClass.boysenberry"}
1929+
1930+ def encode_boysenberry(value) when is_integer(value), do: value
1931+ def encode_boysenberry(_), do: {:error, "Unexpected type when encoding PiaculumClass.boysenberry"}
1932+
1933+ def decode_catharticalness(value) when is_float(value), do: value
1934+ def decode_catharticalness(value) when is_integer(value), do: value
1935+ def decode_catharticalness(_), do: {:error, "Unexpected type when decoding PiaculumClass.catharticalness"}
1936+
1937+ def encode_catharticalness(value) when is_float(value), do: value
1938+ def encode_catharticalness(value) when is_integer(value), do: value
1939+ def encode_catharticalness(_), do: {:error, "Unexpected type when encoding PiaculumClass.catharticalness"}
1940+
1941+ def decode_chirotherium(value) when is_integer(value), do: value
1942+ def decode_chirotherium(_), do: {:error, "Unexpected type when decoding PiaculumClass.chirotherium"}
1943+
1944+ def encode_chirotherium(value) when is_integer(value), do: value
1945+ def encode_chirotherium(_), do: {:error, "Unexpected type when encoding PiaculumClass.chirotherium"}
1946+
1947+ def decode_decardinalize(value) when is_integer(value), do: value
1948+ def decode_decardinalize(_), do: {:error, "Unexpected type when decoding PiaculumClass.decardinalize"}
1949+
1950+ def encode_decardinalize(value) when is_integer(value), do: value
1951+ def encode_decardinalize(_), do: {:error, "Unexpected type when encoding PiaculumClass.decardinalize"}
1952+
1953+ def decode_discouragement(value) when is_integer(value), do: value
1954+ def decode_discouragement(_), do: {:error, "Unexpected type when decoding PiaculumClass.discouragement"}
1955+
1956+ def encode_discouragement(value) when is_integer(value), do: value
1957+ def encode_discouragement(_), do: {:error, "Unexpected type when encoding PiaculumClass.discouragement"}
1958+
16331959 def decode_disdiapason(value) when is_binary(value), do: value
16341960 def decode_disdiapason(_), do: {:error, "Unexpected type when decoding PiaculumClass.disdiapason"}
16351961
16361962 def encode_disdiapason(value) when is_binary(value), do: value
16371963 def encode_disdiapason(_), do: {:error, "Unexpected type when encoding PiaculumClass.disdiapason"}
16381964
1965+ def decode_doitrified(value) when is_integer(value), do: value
1966+ def decode_doitrified(_), do: {:error, "Unexpected type when decoding PiaculumClass.doitrified"}
1967+
1968+ def encode_doitrified(value) when is_integer(value), do: value
1969+ def encode_doitrified(_), do: {:error, "Unexpected type when encoding PiaculumClass.doitrified"}
1970+
1971+ def decode_hexaspermous(value) when is_integer(value), do: value
1972+ def decode_hexaspermous(_), do: {:error, "Unexpected type when decoding PiaculumClass.hexaspermous"}
1973+
1974+ def encode_hexaspermous(value) when is_integer(value), do: value
1975+ def encode_hexaspermous(_), do: {:error, "Unexpected type when encoding PiaculumClass.hexaspermous"}
1976+
1977+ def decode_insinking(value) when is_integer(value), do: value
1978+ def decode_insinking(_), do: {:error, "Unexpected type when decoding PiaculumClass.insinking"}
1979+
1980+ def encode_insinking(value) when is_integer(value), do: value
1981+ def encode_insinking(_), do: {:error, "Unexpected type when encoding PiaculumClass.insinking"}
1982+
1983+ def decode_loathfulness(value) when is_integer(value), do: value
1984+ def decode_loathfulness(_), do: {:error, "Unexpected type when decoding PiaculumClass.loathfulness"}
1985+
1986+ def encode_loathfulness(value) when is_integer(value), do: value
1987+ def encode_loathfulness(_), do: {:error, "Unexpected type when encoding PiaculumClass.loathfulness"}
1988+
1989+ def decode_miasmatical(value) when is_integer(value), do: value
1990+ def decode_miasmatical(_), do: {:error, "Unexpected type when decoding PiaculumClass.miasmatical"}
1991+
1992+ def encode_miasmatical(value) when is_integer(value), do: value
1993+ def encode_miasmatical(_), do: {:error, "Unexpected type when encoding PiaculumClass.miasmatical"}
1994+
1995+ def decode_neurofibril(value) when is_integer(value), do: value
1996+ def decode_neurofibril(_), do: {:error, "Unexpected type when decoding PiaculumClass.neurofibril"}
1997+
1998+ def encode_neurofibril(value) when is_integer(value), do: value
1999+ def encode_neurofibril(_), do: {:error, "Unexpected type when encoding PiaculumClass.neurofibril"}
2000+
2001+ def decode_phonendoscope(value) when is_integer(value), do: value
2002+ def decode_phonendoscope(_), do: {:error, "Unexpected type when decoding PiaculumClass.phonendoscope"}
2003+
2004+ def encode_phonendoscope(value) when is_integer(value), do: value
2005+ def encode_phonendoscope(_), do: {:error, "Unexpected type when encoding PiaculumClass.phonendoscope"}
2006+
2007+ def decode_pilferment(value) when is_integer(value), do: value
2008+ def decode_pilferment(_), do: {:error, "Unexpected type when decoding PiaculumClass.pilferment"}
2009+
2010+ def encode_pilferment(value) when is_integer(value), do: value
2011+ def encode_pilferment(_), do: {:error, "Unexpected type when encoding PiaculumClass.pilferment"}
2012+
2013+ def decode_predismissory(value) when is_integer(value), do: value
2014+ def decode_predismissory(_), do: {:error, "Unexpected type when decoding PiaculumClass.predismissory"}
2015+
2016+ def encode_predismissory(value) when is_integer(value), do: value
2017+ def encode_predismissory(_), do: {:error, "Unexpected type when encoding PiaculumClass.predismissory"}
2018+
2019+ def decode_preinscription(value) when is_integer(value), do: value
2020+ def decode_preinscription(_), do: {:error, "Unexpected type when decoding PiaculumClass.preinscription"}
2021+
2022+ def encode_preinscription(value) when is_integer(value), do: value
2023+ def encode_preinscription(_), do: {:error, "Unexpected type when encoding PiaculumClass.preinscription"}
2024+
2025+ def decode_quotative(value) when is_integer(value), do: value
2026+ def decode_quotative(_), do: {:error, "Unexpected type when decoding PiaculumClass.quotative"}
2027+
2028+ def encode_quotative(value) when is_integer(value), do: value
2029+ def encode_quotative(_), do: {:error, "Unexpected type when encoding PiaculumClass.quotative"}
2030+
2031+ def decode_sienna(value) when is_integer(value), do: value
2032+ def decode_sienna(_), do: {:error, "Unexpected type when decoding PiaculumClass.sienna"}
2033+
2034+ def encode_sienna(value) when is_integer(value), do: value
2035+ def encode_sienna(_), do: {:error, "Unexpected type when encoding PiaculumClass.sienna"}
2036+
2037+ def decode_thorax(value) when is_integer(value), do: value
2038+ def decode_thorax(_), do: {:error, "Unexpected type when decoding PiaculumClass.thorax"}
2039+
2040+ def encode_thorax(value) when is_integer(value), do: value
2041+ def encode_thorax(_), do: {:error, "Unexpected type when encoding PiaculumClass.thorax"}
2042+
2043+ def decode_yachting(value) when is_integer(value), do: value
2044+ def decode_yachting(_), do: {:error, "Unexpected type when decoding PiaculumClass.yachting"}
2045+
2046+ def encode_yachting(value) when is_integer(value), do: value
2047+ def encode_yachting(_), do: {:error, "Unexpected type when encoding PiaculumClass.yachting"}
2048+
2049+ def decode_zipper(value) when is_integer(value), do: value
2050+ def decode_zipper(_), do: {:error, "Unexpected type when decoding PiaculumClass.zipper"}
2051+
2052+ def encode_zipper(value) when is_integer(value), do: value
2053+ def encode_zipper(_), do: {:error, "Unexpected type when encoding PiaculumClass.zipper"}
2054+
16392055 def from_map(m) do
16402056 %PiaculumClass{
1641- alada: m["alada"],
1642- amphistomous: m["amphistomous"],
1643- boysenberry: m["boysenberry"],
1644- catharticalness: m["catharticalness"],
1645- chirotherium: m["Chirotherium"],
1646- decardinalize: m["decardinalize"],
1647- discouragement: m["discouragement"],
2057+ alada: m["alada"] && decode_alada(m["alada"]),
2058+ amphistomous: m["amphistomous"] && decode_amphistomous(m["amphistomous"]),
2059+ boysenberry: m["boysenberry"] && decode_boysenberry(m["boysenberry"]),
2060+ catharticalness: m["catharticalness"] && decode_catharticalness(m["catharticalness"]),
2061+ chirotherium: m["Chirotherium"] && decode_chirotherium(m["Chirotherium"]),
2062+ decardinalize: m["decardinalize"] && decode_decardinalize(m["decardinalize"]),
2063+ discouragement: m["discouragement"] && decode_discouragement(m["discouragement"]),
16482064 disdiapason: m["disdiapason"] && decode_disdiapason(m["disdiapason"]),
1649- doitrified: m["doitrified"],
1650- hexaspermous: m["hexaspermous"],
2065+ doitrified: m["doitrified"] && decode_doitrified(m["doitrified"]),
2066+ hexaspermous: m["hexaspermous"] && decode_hexaspermous(m["hexaspermous"]),
16512067 homocerc: m["homocerc"],
1652- insinking: m["insinking"],
1653- loathfulness: m["loathfulness"],
1654- miasmatical: m["miasmatical"],
1655- neurofibril: m["neurofibril"],
2068+ insinking: m["insinking"] && decode_insinking(m["insinking"]),
2069+ loathfulness: m["loathfulness"] && decode_loathfulness(m["loathfulness"]),
2070+ miasmatical: m["miasmatical"] && decode_miasmatical(m["miasmatical"]),
2071+ neurofibril: m["neurofibril"] && decode_neurofibril(m["neurofibril"]),
16562072 nonbookish: m["nonbookish"],
1657- phonendoscope: m["phonendoscope"],
1658- pilferment: m["pilferment"],
1659- predismissory: m["predismissory"],
1660- preinscription: m["preinscription"],
1661- quotative: m["quotative"],
1662- sienna: m["sienna"],
1663- thorax: m["thorax"],
1664- yachting: m["yachting"],
1665- zipper: m["Zipper"],
2073+ phonendoscope: m["phonendoscope"] && decode_phonendoscope(m["phonendoscope"]),
2074+ pilferment: m["pilferment"] && decode_pilferment(m["pilferment"]),
2075+ predismissory: m["predismissory"] && decode_predismissory(m["predismissory"]),
2076+ preinscription: m["preinscription"] && decode_preinscription(m["preinscription"]),
2077+ quotative: m["quotative"] && decode_quotative(m["quotative"]),
2078+ sienna: m["sienna"] && decode_sienna(m["sienna"]),
2079+ thorax: m["thorax"] && decode_thorax(m["thorax"]),
2080+ yachting: m["yachting"] && decode_yachting(m["yachting"]),
2081+ zipper: m["Zipper"] && decode_zipper(m["Zipper"]),
16662082 }
16672083 end
16682084
@@ -1740,6 +2156,20 @@ defmodule Pneumocele do
17402156 visitorial: nil | nil
17412157 }
17422158
2159+ def decode_catharticalness(value) when is_float(value), do: value
2160+ def decode_catharticalness(value) when is_integer(value), do: value
2161+ def decode_catharticalness(_), do: {:error, "Unexpected type when decoding Pneumocele.catharticalness"}
2162+
2163+ def encode_catharticalness(value) when is_float(value), do: value
2164+ def encode_catharticalness(value) when is_integer(value), do: value
2165+ def encode_catharticalness(_), do: {:error, "Unexpected type when encoding Pneumocele.catharticalness"}
2166+
2167+ def decode_chirotherium(value) when is_integer(value), do: value
2168+ def decode_chirotherium(_), do: {:error, "Unexpected type when decoding Pneumocele.chirotherium"}
2169+
2170+ def encode_chirotherium(value) when is_integer(value), do: value
2171+ def encode_chirotherium(_), do: {:error, "Unexpected type when encoding Pneumocele.chirotherium"}
2172+
17432173 def decode_disdiapason(value) when is_binary(value), do: value
17442174 def decode_disdiapason(_), do: {:error, "Unexpected type when decoding Pneumocele.disdiapason"}
17452175
@@ -1749,8 +2179,8 @@ defmodule Pneumocele do
17492179 def from_map(m) do
17502180 %Pneumocele{
17512181 carbonarism: m["Carbonarism"],
1752- catharticalness: m["catharticalness"],
1753- chirotherium: m["Chirotherium"],
2182+ catharticalness: m["catharticalness"] && decode_catharticalness(m["catharticalness"]),
2183+ chirotherium: m["Chirotherium"] && decode_chirotherium(m["Chirotherium"]),
17542184 cineolic: m["cineolic"],
17552185 cobbly: m["cobbly"],
17562186 conchyliferous: m["conchyliferous"],
Test case

test/inputs/json/priority/combinations4.json

1 generated file · +516 −72
Melixirdefault / QuickType.ex+516 −72
@@ -533,6 +533,20 @@ defmodule Reimagine do
533533 waltzlike: nil | nil
534534 }
535535
536+ def decode_catharticalness(value) when is_float(value), do: value
537+ def decode_catharticalness(value) when is_integer(value), do: value
538+ def decode_catharticalness(_), do: {:error, "Unexpected type when decoding Reimagine.catharticalness"}
539+
540+ def encode_catharticalness(value) when is_float(value), do: value
541+ def encode_catharticalness(value) when is_integer(value), do: value
542+ def encode_catharticalness(_), do: {:error, "Unexpected type when encoding Reimagine.catharticalness"}
543+
544+ def decode_chirotherium(value) when is_integer(value), do: value
545+ def decode_chirotherium(_), do: {:error, "Unexpected type when decoding Reimagine.chirotherium"}
546+
547+ def encode_chirotherium(value) when is_integer(value), do: value
548+ def encode_chirotherium(_), do: {:error, "Unexpected type when encoding Reimagine.chirotherium"}
549+
536550 def decode_disdiapason(value) when is_binary(value), do: value
537551 def decode_disdiapason(_), do: {:error, "Unexpected type when decoding Reimagine.disdiapason"}
538552
@@ -544,8 +558,8 @@ defmodule Reimagine do
544558 adducible: m["adducible"],
545559 anabolin: m["anabolin"],
546560 brainy: m["brainy"],
547- catharticalness: m["catharticalness"],
548- chirotherium: m["Chirotherium"],
561+ catharticalness: m["catharticalness"] && decode_catharticalness(m["catharticalness"]),
562+ chirotherium: m["Chirotherium"] && decode_chirotherium(m["Chirotherium"]),
549563 chrysamine: m["chrysamine"],
550564 disdiapason: m["disdiapason"] && decode_disdiapason(m["disdiapason"]),
551565 fluxweed: m["fluxweed"],
@@ -1273,6 +1287,20 @@ defmodule SaxtenClass do
12731287 withdrawnness: nil | nil
12741288 }
12751289
1290+ def decode_catharticalness(value) when is_float(value), do: value
1291+ def decode_catharticalness(value) when is_integer(value), do: value
1292+ def decode_catharticalness(_), do: {:error, "Unexpected type when decoding SaxtenClass.catharticalness"}
1293+
1294+ def encode_catharticalness(value) when is_float(value), do: value
1295+ def encode_catharticalness(value) when is_integer(value), do: value
1296+ def encode_catharticalness(_), do: {:error, "Unexpected type when encoding SaxtenClass.catharticalness"}
1297+
1298+ def decode_chirotherium(value) when is_integer(value), do: value
1299+ def decode_chirotherium(_), do: {:error, "Unexpected type when decoding SaxtenClass.chirotherium"}
1300+
1301+ def encode_chirotherium(value) when is_integer(value), do: value
1302+ def encode_chirotherium(_), do: {:error, "Unexpected type when encoding SaxtenClass.chirotherium"}
1303+
12761304 def decode_disdiapason(value) when is_binary(value), do: value
12771305 def decode_disdiapason(_), do: {:error, "Unexpected type when decoding SaxtenClass.disdiapason"}
12781306
@@ -1283,9 +1311,9 @@ defmodule SaxtenClass do
12831311 %SaxtenClass{
12841312 algarrobilla: m["algarrobilla"],
12851313 bowgrace: m["bowgrace"],
1286- catharticalness: m["catharticalness"],
1314+ catharticalness: m["catharticalness"] && decode_catharticalness(m["catharticalness"]),
12871315 centaurid: m["Centaurid"],
1288- chirotherium: m["Chirotherium"],
1316+ chirotherium: m["Chirotherium"] && decode_chirotherium(m["Chirotherium"]),
12891317 disdiapason: m["disdiapason"] && decode_disdiapason(m["disdiapason"]),
12901318 flix: m["flix"],
12911319 germanely: m["germanely"],
@@ -1803,39 +1831,173 @@ defmodule Staghunting do
18031831 ungirlish: integer() | nil
18041832 }
18051833
1834+ def decode_calorimetric(value) when is_integer(value), do: value
1835+ def decode_calorimetric(_), do: {:error, "Unexpected type when decoding Staghunting.calorimetric"}
1836+
1837+ def encode_calorimetric(value) when is_integer(value), do: value
1838+ def encode_calorimetric(_), do: {:error, "Unexpected type when encoding Staghunting.calorimetric"}
1839+
1840+ def decode_canid(value) when is_integer(value), do: value
1841+ def decode_canid(_), do: {:error, "Unexpected type when decoding Staghunting.canid"}
1842+
1843+ def encode_canid(value) when is_integer(value), do: value
1844+ def encode_canid(_), do: {:error, "Unexpected type when encoding Staghunting.canid"}
1845+
1846+ def decode_catharticalness(value) when is_float(value), do: value
1847+ def decode_catharticalness(value) when is_integer(value), do: value
1848+ def decode_catharticalness(_), do: {:error, "Unexpected type when decoding Staghunting.catharticalness"}
1849+
1850+ def encode_catharticalness(value) when is_float(value), do: value
1851+ def encode_catharticalness(value) when is_integer(value), do: value
1852+ def encode_catharticalness(_), do: {:error, "Unexpected type when encoding Staghunting.catharticalness"}
1853+
1854+ def decode_chirotherium(value) when is_integer(value), do: value
1855+ def decode_chirotherium(_), do: {:error, "Unexpected type when decoding Staghunting.chirotherium"}
1856+
1857+ def encode_chirotherium(value) when is_integer(value), do: value
1858+ def encode_chirotherium(_), do: {:error, "Unexpected type when encoding Staghunting.chirotherium"}
1859+
18061860 def decode_disdiapason(value) when is_binary(value), do: value
18071861 def decode_disdiapason(_), do: {:error, "Unexpected type when decoding Staghunting.disdiapason"}
18081862
18091863 def encode_disdiapason(value) when is_binary(value), do: value
18101864 def encode_disdiapason(_), do: {:error, "Unexpected type when encoding Staghunting.disdiapason"}
18111865
1866+ def decode_ditriglyphic(value) when is_integer(value), do: value
1867+ def decode_ditriglyphic(_), do: {:error, "Unexpected type when decoding Staghunting.ditriglyphic"}
1868+
1869+ def encode_ditriglyphic(value) when is_integer(value), do: value
1870+ def encode_ditriglyphic(_), do: {:error, "Unexpected type when encoding Staghunting.ditriglyphic"}
1871+
1872+ def decode_floriferousness(value) when is_integer(value), do: value
1873+ def decode_floriferousness(_), do: {:error, "Unexpected type when decoding Staghunting.floriferousness"}
1874+
1875+ def encode_floriferousness(value) when is_integer(value), do: value
1876+ def encode_floriferousness(_), do: {:error, "Unexpected type when encoding Staghunting.floriferousness"}
1877+
1878+ def decode_gamelike(value) when is_integer(value), do: value
1879+ def decode_gamelike(_), do: {:error, "Unexpected type when decoding Staghunting.gamelike"}
1880+
1881+ def encode_gamelike(value) when is_integer(value), do: value
1882+ def encode_gamelike(_), do: {:error, "Unexpected type when encoding Staghunting.gamelike"}
1883+
1884+ def decode_grig(value) when is_integer(value), do: value
1885+ def decode_grig(_), do: {:error, "Unexpected type when decoding Staghunting.grig"}
1886+
1887+ def encode_grig(value) when is_integer(value), do: value
1888+ def encode_grig(_), do: {:error, "Unexpected type when encoding Staghunting.grig"}
1889+
1890+ def decode_interloan(value) when is_integer(value), do: value
1891+ def decode_interloan(_), do: {:error, "Unexpected type when decoding Staghunting.interloan"}
1892+
1893+ def encode_interloan(value) when is_integer(value), do: value
1894+ def encode_interloan(_), do: {:error, "Unexpected type when encoding Staghunting.interloan"}
1895+
1896+ def decode_lithotomy(value) when is_integer(value), do: value
1897+ def decode_lithotomy(_), do: {:error, "Unexpected type when decoding Staghunting.lithotomy"}
1898+
1899+ def encode_lithotomy(value) when is_integer(value), do: value
1900+ def encode_lithotomy(_), do: {:error, "Unexpected type when encoding Staghunting.lithotomy"}
1901+
1902+ def decode_loric(value) when is_integer(value), do: value
1903+ def decode_loric(_), do: {:error, "Unexpected type when decoding Staghunting.loric"}
1904+
1905+ def encode_loric(value) when is_integer(value), do: value
1906+ def encode_loric(_), do: {:error, "Unexpected type when encoding Staghunting.loric"}
1907+
1908+ def decode_membranocoriaceous(value) when is_integer(value), do: value
1909+ def decode_membranocoriaceous(_), do: {:error, "Unexpected type when decoding Staghunting.membranocoriaceous"}
1910+
1911+ def encode_membranocoriaceous(value) when is_integer(value), do: value
1912+ def encode_membranocoriaceous(_), do: {:error, "Unexpected type when encoding Staghunting.membranocoriaceous"}
1913+
1914+ def decode_membranogenic(value) when is_integer(value), do: value
1915+ def decode_membranogenic(_), do: {:error, "Unexpected type when decoding Staghunting.membranogenic"}
1916+
1917+ def encode_membranogenic(value) when is_integer(value), do: value
1918+ def encode_membranogenic(_), do: {:error, "Unexpected type when encoding Staghunting.membranogenic"}
1919+
1920+ def decode_overtrump(value) when is_integer(value), do: value
1921+ def decode_overtrump(_), do: {:error, "Unexpected type when decoding Staghunting.overtrump"}
1922+
1923+ def encode_overtrump(value) when is_integer(value), do: value
1924+ def encode_overtrump(_), do: {:error, "Unexpected type when encoding Staghunting.overtrump"}
1925+
1926+ def decode_scotino(value) when is_integer(value), do: value
1927+ def decode_scotino(_), do: {:error, "Unexpected type when decoding Staghunting.scotino"}
1928+
1929+ def encode_scotino(value) when is_integer(value), do: value
1930+ def encode_scotino(_), do: {:error, "Unexpected type when encoding Staghunting.scotino"}
1931+
1932+ def decode_seasonable(value) when is_integer(value), do: value
1933+ def decode_seasonable(_), do: {:error, "Unexpected type when decoding Staghunting.seasonable"}
1934+
1935+ def encode_seasonable(value) when is_integer(value), do: value
1936+ def encode_seasonable(_), do: {:error, "Unexpected type when encoding Staghunting.seasonable"}
1937+
1938+ def decode_sephen(value) when is_integer(value), do: value
1939+ def decode_sephen(_), do: {:error, "Unexpected type when decoding Staghunting.sephen"}
1940+
1941+ def encode_sephen(value) when is_integer(value), do: value
1942+ def encode_sephen(_), do: {:error, "Unexpected type when encoding Staghunting.sephen"}
1943+
1944+ def decode_stigmarioid(value) when is_integer(value), do: value
1945+ def decode_stigmarioid(_), do: {:error, "Unexpected type when decoding Staghunting.stigmarioid"}
1946+
1947+ def encode_stigmarioid(value) when is_integer(value), do: value
1948+ def encode_stigmarioid(_), do: {:error, "Unexpected type when encoding Staghunting.stigmarioid"}
1949+
1950+ def decode_tired(value) when is_integer(value), do: value
1951+ def decode_tired(_), do: {:error, "Unexpected type when decoding Staghunting.tired"}
1952+
1953+ def encode_tired(value) when is_integer(value), do: value
1954+ def encode_tired(_), do: {:error, "Unexpected type when encoding Staghunting.tired"}
1955+
1956+ def decode_trifid(value) when is_integer(value), do: value
1957+ def decode_trifid(_), do: {:error, "Unexpected type when decoding Staghunting.trifid"}
1958+
1959+ def encode_trifid(value) when is_integer(value), do: value
1960+ def encode_trifid(_), do: {:error, "Unexpected type when encoding Staghunting.trifid"}
1961+
1962+ def decode_undefeatedly(value) when is_integer(value), do: value
1963+ def decode_undefeatedly(_), do: {:error, "Unexpected type when decoding Staghunting.undefeatedly"}
1964+
1965+ def encode_undefeatedly(value) when is_integer(value), do: value
1966+ def encode_undefeatedly(_), do: {:error, "Unexpected type when encoding Staghunting.undefeatedly"}
1967+
1968+ def decode_ungirlish(value) when is_integer(value), do: value
1969+ def decode_ungirlish(_), do: {:error, "Unexpected type when decoding Staghunting.ungirlish"}
1970+
1971+ def encode_ungirlish(value) when is_integer(value), do: value
1972+ def encode_ungirlish(_), do: {:error, "Unexpected type when encoding Staghunting.ungirlish"}
1973+
18121974 def from_map(m) do
18131975 %Staghunting{
1814- calorimetric: m["calorimetric"],
1815- canid: m["canid"],
1816- catharticalness: m["catharticalness"],
1817- chirotherium: m["Chirotherium"],
1976+ calorimetric: m["calorimetric"] && decode_calorimetric(m["calorimetric"]),
1977+ canid: m["canid"] && decode_canid(m["canid"]),
1978+ catharticalness: m["catharticalness"] && decode_catharticalness(m["catharticalness"]),
1979+ chirotherium: m["Chirotherium"] && decode_chirotherium(m["Chirotherium"]),
18181980 disdiapason: m["disdiapason"] && decode_disdiapason(m["disdiapason"]),
1819- ditriglyphic: m["ditriglyphic"],
1820- floriferousness: m["floriferousness"],
1821- gamelike: m["gamelike"],
1822- grig: m["grig"],
1981+ ditriglyphic: m["ditriglyphic"] && decode_ditriglyphic(m["ditriglyphic"]),
1982+ floriferousness: m["floriferousness"] && decode_floriferousness(m["floriferousness"]),
1983+ gamelike: m["gamelike"] && decode_gamelike(m["gamelike"]),
1984+ grig: m["grig"] && decode_grig(m["grig"]),
18231985 homocerc: m["homocerc"],
1824- interloan: m["interloan"],
1825- lithotomy: m["lithotomy"],
1826- loric: m["loric"],
1827- membranocoriaceous: m["membranocoriaceous"],
1828- membranogenic: m["membranogenic"],
1986+ interloan: m["interloan"] && decode_interloan(m["interloan"]),
1987+ lithotomy: m["lithotomy"] && decode_lithotomy(m["lithotomy"]),
1988+ loric: m["loric"] && decode_loric(m["loric"]),
1989+ membranocoriaceous: m["membranocoriaceous"] && decode_membranocoriaceous(m["membranocoriaceous"]),
1990+ membranogenic: m["membranogenic"] && decode_membranogenic(m["membranogenic"]),
18291991 nonbookish: m["nonbookish"],
1830- overtrump: m["overtrump"],
1831- scotino: m["scotino"],
1832- seasonable: m["seasonable"],
1833- sephen: m["sephen"],
1834- stigmarioid: m["stigmarioid"],
1835- tired: m["tired"],
1836- trifid: m["trifid"],
1837- undefeatedly: m["undefeatedly"],
1838- ungirlish: m["ungirlish"],
1992+ overtrump: m["overtrump"] && decode_overtrump(m["overtrump"]),
1993+ scotino: m["scotino"] && decode_scotino(m["scotino"]),
1994+ seasonable: m["seasonable"] && decode_seasonable(m["seasonable"]),
1995+ sephen: m["sephen"] && decode_sephen(m["sephen"]),
1996+ stigmarioid: m["stigmarioid"] && decode_stigmarioid(m["stigmarioid"]),
1997+ tired: m["tired"] && decode_tired(m["tired"]),
1998+ trifid: m["trifid"] && decode_trifid(m["trifid"]),
1999+ undefeatedly: m["undefeatedly"] && decode_undefeatedly(m["undefeatedly"]),
2000+ ungirlish: m["ungirlish"] && decode_ungirlish(m["ungirlish"]),
18392001 }
18402002 end
18412003
@@ -1913,39 +2075,173 @@ defmodule StrenuosityClass do
19132075 yankeeist: integer() | nil
19142076 }
19152077
2078+ def decode_bliss(value) when is_integer(value), do: value
2079+ def decode_bliss(_), do: {:error, "Unexpected type when decoding StrenuosityClass.bliss"}
2080+
2081+ def encode_bliss(value) when is_integer(value), do: value
2082+ def encode_bliss(_), do: {:error, "Unexpected type when encoding StrenuosityClass.bliss"}
2083+
2084+ def decode_buccate(value) when is_integer(value), do: value
2085+ def decode_buccate(_), do: {:error, "Unexpected type when decoding StrenuosityClass.buccate"}
2086+
2087+ def encode_buccate(value) when is_integer(value), do: value
2088+ def encode_buccate(_), do: {:error, "Unexpected type when encoding StrenuosityClass.buccate"}
2089+
2090+ def decode_bulletproof(value) when is_integer(value), do: value
2091+ def decode_bulletproof(_), do: {:error, "Unexpected type when decoding StrenuosityClass.bulletproof"}
2092+
2093+ def encode_bulletproof(value) when is_integer(value), do: value
2094+ def encode_bulletproof(_), do: {:error, "Unexpected type when encoding StrenuosityClass.bulletproof"}
2095+
2096+ def decode_catharticalness(value) when is_float(value), do: value
2097+ def decode_catharticalness(value) when is_integer(value), do: value
2098+ def decode_catharticalness(_), do: {:error, "Unexpected type when decoding StrenuosityClass.catharticalness"}
2099+
2100+ def encode_catharticalness(value) when is_float(value), do: value
2101+ def encode_catharticalness(value) when is_integer(value), do: value
2102+ def encode_catharticalness(_), do: {:error, "Unexpected type when encoding StrenuosityClass.catharticalness"}
2103+
2104+ def decode_chirotherium(value) when is_integer(value), do: value
2105+ def decode_chirotherium(_), do: {:error, "Unexpected type when decoding StrenuosityClass.chirotherium"}
2106+
2107+ def encode_chirotherium(value) when is_integer(value), do: value
2108+ def encode_chirotherium(_), do: {:error, "Unexpected type when encoding StrenuosityClass.chirotherium"}
2109+
2110+ def decode_crumblingness(value) when is_integer(value), do: value
2111+ def decode_crumblingness(_), do: {:error, "Unexpected type when decoding StrenuosityClass.crumblingness"}
2112+
2113+ def encode_crumblingness(value) when is_integer(value), do: value
2114+ def encode_crumblingness(_), do: {:error, "Unexpected type when encoding StrenuosityClass.crumblingness"}
2115+
19162116 def decode_disdiapason(value) when is_binary(value), do: value
19172117 def decode_disdiapason(_), do: {:error, "Unexpected type when decoding StrenuosityClass.disdiapason"}
19182118
19192119 def encode_disdiapason(value) when is_binary(value), do: value
19202120 def encode_disdiapason(_), do: {:error, "Unexpected type when encoding StrenuosityClass.disdiapason"}
19212121
2122+ def decode_engagedly(value) when is_integer(value), do: value
2123+ def decode_engagedly(_), do: {:error, "Unexpected type when decoding StrenuosityClass.engagedly"}
2124+
2125+ def encode_engagedly(value) when is_integer(value), do: value
2126+ def encode_engagedly(_), do: {:error, "Unexpected type when encoding StrenuosityClass.engagedly"}
2127+
2128+ def decode_fightable(value) when is_integer(value), do: value
2129+ def decode_fightable(_), do: {:error, "Unexpected type when decoding StrenuosityClass.fightable"}
2130+
2131+ def encode_fightable(value) when is_integer(value), do: value
2132+ def encode_fightable(_), do: {:error, "Unexpected type when encoding StrenuosityClass.fightable"}
2133+
2134+ def decode_hoariness(value) when is_integer(value), do: value
2135+ def decode_hoariness(_), do: {:error, "Unexpected type when decoding StrenuosityClass.hoariness"}
2136+
2137+ def encode_hoariness(value) when is_integer(value), do: value
2138+ def encode_hoariness(_), do: {:error, "Unexpected type when encoding StrenuosityClass.hoariness"}
2139+
2140+ def decode_hypopodium(value) when is_integer(value), do: value
2141+ def decode_hypopodium(_), do: {:error, "Unexpected type when decoding StrenuosityClass.hypopodium"}
2142+
2143+ def encode_hypopodium(value) when is_integer(value), do: value
2144+ def encode_hypopodium(_), do: {:error, "Unexpected type when encoding StrenuosityClass.hypopodium"}
2145+
2146+ def decode_luxurist(value) when is_integer(value), do: value
2147+ def decode_luxurist(_), do: {:error, "Unexpected type when decoding StrenuosityClass.luxurist"}
2148+
2149+ def encode_luxurist(value) when is_integer(value), do: value
2150+ def encode_luxurist(_), do: {:error, "Unexpected type when encoding StrenuosityClass.luxurist"}
2151+
2152+ def decode_mechanician(value) when is_integer(value), do: value
2153+ def decode_mechanician(_), do: {:error, "Unexpected type when decoding StrenuosityClass.mechanician"}
2154+
2155+ def encode_mechanician(value) when is_integer(value), do: value
2156+ def encode_mechanician(_), do: {:error, "Unexpected type when encoding StrenuosityClass.mechanician"}
2157+
2158+ def decode_onopordon(value) when is_integer(value), do: value
2159+ def decode_onopordon(_), do: {:error, "Unexpected type when decoding StrenuosityClass.onopordon"}
2160+
2161+ def encode_onopordon(value) when is_integer(value), do: value
2162+ def encode_onopordon(_), do: {:error, "Unexpected type when encoding StrenuosityClass.onopordon"}
2163+
2164+ def decode_podgily(value) when is_integer(value), do: value
2165+ def decode_podgily(_), do: {:error, "Unexpected type when decoding StrenuosityClass.podgily"}
2166+
2167+ def encode_podgily(value) when is_integer(value), do: value
2168+ def encode_podgily(_), do: {:error, "Unexpected type when encoding StrenuosityClass.podgily"}
2169+
2170+ def decode_reformableness(value) when is_integer(value), do: value
2171+ def decode_reformableness(_), do: {:error, "Unexpected type when decoding StrenuosityClass.reformableness"}
2172+
2173+ def encode_reformableness(value) when is_integer(value), do: value
2174+ def encode_reformableness(_), do: {:error, "Unexpected type when encoding StrenuosityClass.reformableness"}
2175+
2176+ def decode_scatterbrains(value) when is_integer(value), do: value
2177+ def decode_scatterbrains(_), do: {:error, "Unexpected type when decoding StrenuosityClass.scatterbrains"}
2178+
2179+ def encode_scatterbrains(value) when is_integer(value), do: value
2180+ def encode_scatterbrains(_), do: {:error, "Unexpected type when encoding StrenuosityClass.scatterbrains"}
2181+
2182+ def decode_seminuria(value) when is_integer(value), do: value
2183+ def decode_seminuria(_), do: {:error, "Unexpected type when decoding StrenuosityClass.seminuria"}
2184+
2185+ def encode_seminuria(value) when is_integer(value), do: value
2186+ def encode_seminuria(_), do: {:error, "Unexpected type when encoding StrenuosityClass.seminuria"}
2187+
2188+ def decode_sodomite(value) when is_integer(value), do: value
2189+ def decode_sodomite(_), do: {:error, "Unexpected type when decoding StrenuosityClass.sodomite"}
2190+
2191+ def encode_sodomite(value) when is_integer(value), do: value
2192+ def encode_sodomite(_), do: {:error, "Unexpected type when encoding StrenuosityClass.sodomite"}
2193+
2194+ def decode_tramp(value) when is_integer(value), do: value
2195+ def decode_tramp(_), do: {:error, "Unexpected type when decoding StrenuosityClass.tramp"}
2196+
2197+ def encode_tramp(value) when is_integer(value), do: value
2198+ def encode_tramp(_), do: {:error, "Unexpected type when encoding StrenuosityClass.tramp"}
2199+
2200+ def decode_undueness(value) when is_integer(value), do: value
2201+ def decode_undueness(_), do: {:error, "Unexpected type when decoding StrenuosityClass.undueness"}
2202+
2203+ def encode_undueness(value) when is_integer(value), do: value
2204+ def encode_undueness(_), do: {:error, "Unexpected type when encoding StrenuosityClass.undueness"}
2205+
2206+ def decode_worthily(value) when is_integer(value), do: value
2207+ def decode_worthily(_), do: {:error, "Unexpected type when decoding StrenuosityClass.worthily"}
2208+
2209+ def encode_worthily(value) when is_integer(value), do: value
2210+ def encode_worthily(_), do: {:error, "Unexpected type when encoding StrenuosityClass.worthily"}
2211+
2212+ def decode_yankeeist(value) when is_integer(value), do: value
2213+ def decode_yankeeist(_), do: {:error, "Unexpected type when decoding StrenuosityClass.yankeeist"}
2214+
2215+ def encode_yankeeist(value) when is_integer(value), do: value
2216+ def encode_yankeeist(_), do: {:error, "Unexpected type when encoding StrenuosityClass.yankeeist"}
2217+
19222218 def from_map(m) do
19232219 %StrenuosityClass{
1924- bliss: m["bliss"],
1925- buccate: m["buccate"],
1926- bulletproof: m["bulletproof"],
1927- catharticalness: m["catharticalness"],
1928- chirotherium: m["Chirotherium"],
1929- crumblingness: m["crumblingness"],
2220+ bliss: m["bliss"] && decode_bliss(m["bliss"]),
2221+ buccate: m["buccate"] && decode_buccate(m["buccate"]),
2222+ bulletproof: m["bulletproof"] && decode_bulletproof(m["bulletproof"]),
2223+ catharticalness: m["catharticalness"] && decode_catharticalness(m["catharticalness"]),
2224+ chirotherium: m["Chirotherium"] && decode_chirotherium(m["Chirotherium"]),
2225+ crumblingness: m["crumblingness"] && decode_crumblingness(m["crumblingness"]),
19302226 disdiapason: m["disdiapason"] && decode_disdiapason(m["disdiapason"]),
1931- engagedly: m["engagedly"],
1932- fightable: m["fightable"],
1933- hoariness: m["hoariness"],
2227+ engagedly: m["engagedly"] && decode_engagedly(m["engagedly"]),
2228+ fightable: m["fightable"] && decode_fightable(m["fightable"]),
2229+ hoariness: m["hoariness"] && decode_hoariness(m["hoariness"]),
19342230 homocerc: m["homocerc"],
1935- hypopodium: m["hypopodium"],
1936- luxurist: m["luxurist"],
1937- mechanician: m["mechanician"],
2231+ hypopodium: m["hypopodium"] && decode_hypopodium(m["hypopodium"]),
2232+ luxurist: m["luxurist"] && decode_luxurist(m["luxurist"]),
2233+ mechanician: m["mechanician"] && decode_mechanician(m["mechanician"]),
19382234 nonbookish: m["nonbookish"],
1939- onopordon: m["Onopordon"],
1940- podgily: m["podgily"],
1941- reformableness: m["reformableness"],
1942- scatterbrains: m["scatterbrains"],
1943- seminuria: m["seminuria"],
1944- sodomite: m["Sodomite"],
1945- tramp: m["tramp"],
1946- undueness: m["undueness"],
1947- worthily: m["worthily"],
1948- yankeeist: m["Yankeeist"],
2235+ onopordon: m["Onopordon"] && decode_onopordon(m["Onopordon"]),
2236+ podgily: m["podgily"] && decode_podgily(m["podgily"]),
2237+ reformableness: m["reformableness"] && decode_reformableness(m["reformableness"]),
2238+ scatterbrains: m["scatterbrains"] && decode_scatterbrains(m["scatterbrains"]),
2239+ seminuria: m["seminuria"] && decode_seminuria(m["seminuria"]),
2240+ sodomite: m["Sodomite"] && decode_sodomite(m["Sodomite"]),
2241+ tramp: m["tramp"] && decode_tramp(m["tramp"]),
2242+ undueness: m["undueness"] && decode_undueness(m["undueness"]),
2243+ worthily: m["worthily"] && decode_worthily(m["worthily"]),
2244+ yankeeist: m["Yankeeist"] && decode_yankeeist(m["Yankeeist"]),
19492245 }
19502246 end
19512247
@@ -2023,6 +2319,20 @@ defmodule TruantcyClass do
20232319 yuman: nil | nil
20242320 }
20252321
2322+ def decode_catharticalness(value) when is_float(value), do: value
2323+ def decode_catharticalness(value) when is_integer(value), do: value
2324+ def decode_catharticalness(_), do: {:error, "Unexpected type when decoding TruantcyClass.catharticalness"}
2325+
2326+ def encode_catharticalness(value) when is_float(value), do: value
2327+ def encode_catharticalness(value) when is_integer(value), do: value
2328+ def encode_catharticalness(_), do: {:error, "Unexpected type when encoding TruantcyClass.catharticalness"}
2329+
2330+ def decode_chirotherium(value) when is_integer(value), do: value
2331+ def decode_chirotherium(_), do: {:error, "Unexpected type when decoding TruantcyClass.chirotherium"}
2332+
2333+ def encode_chirotherium(value) when is_integer(value), do: value
2334+ def encode_chirotherium(_), do: {:error, "Unexpected type when encoding TruantcyClass.chirotherium"}
2335+
20262336 def decode_disdiapason(value) when is_binary(value), do: value
20272337 def decode_disdiapason(_), do: {:error, "Unexpected type when decoding TruantcyClass.disdiapason"}
20282338
@@ -2034,9 +2344,9 @@ defmodule TruantcyClass do
20342344 alfiona: m["alfiona"],
20352345 ascaridiasis: m["ascaridiasis"],
20362346 bungey: m["bungey"],
2037- catharticalness: m["catharticalness"],
2347+ catharticalness: m["catharticalness"] && decode_catharticalness(m["catharticalness"]),
20382348 ceroxyle: m["ceroxyle"],
2039- chirotherium: m["Chirotherium"],
2349+ chirotherium: m["Chirotherium"] && decode_chirotherium(m["Chirotherium"]),
20402350 chorology: m["chorology"],
20412351 disdiapason: m["disdiapason"] && decode_disdiapason(m["disdiapason"]),
20422352 enmarble: m["enmarble"],
@@ -2133,39 +2443,173 @@ defmodule UnimpeachablyClass do
21332443 unsuggestedness: integer() | nil
21342444 }
21352445
2446+ def decode_acerin(value) when is_integer(value), do: value
2447+ def decode_acerin(_), do: {:error, "Unexpected type when decoding UnimpeachablyClass.acerin"}
2448+
2449+ def encode_acerin(value) when is_integer(value), do: value
2450+ def encode_acerin(_), do: {:error, "Unexpected type when encoding UnimpeachablyClass.acerin"}
2451+
2452+ def decode_bobadil(value) when is_integer(value), do: value
2453+ def decode_bobadil(_), do: {:error, "Unexpected type when decoding UnimpeachablyClass.bobadil"}
2454+
2455+ def encode_bobadil(value) when is_integer(value), do: value
2456+ def encode_bobadil(_), do: {:error, "Unexpected type when encoding UnimpeachablyClass.bobadil"}
2457+
2458+ def decode_catharticalness(value) when is_float(value), do: value
2459+ def decode_catharticalness(value) when is_integer(value), do: value
2460+ def decode_catharticalness(_), do: {:error, "Unexpected type when decoding UnimpeachablyClass.catharticalness"}
2461+
2462+ def encode_catharticalness(value) when is_float(value), do: value
2463+ def encode_catharticalness(value) when is_integer(value), do: value
2464+ def encode_catharticalness(_), do: {:error, "Unexpected type when encoding UnimpeachablyClass.catharticalness"}
2465+
2466+ def decode_chirotherium(value) when is_integer(value), do: value
2467+ def decode_chirotherium(_), do: {:error, "Unexpected type when decoding UnimpeachablyClass.chirotherium"}
2468+
2469+ def encode_chirotherium(value) when is_integer(value), do: value
2470+ def encode_chirotherium(_), do: {:error, "Unexpected type when encoding UnimpeachablyClass.chirotherium"}
2471+
2472+ def decode_chlorophylligenous(value) when is_integer(value), do: value
2473+ def decode_chlorophylligenous(_), do: {:error, "Unexpected type when decoding UnimpeachablyClass.chlorophylligenous"}
2474+
2475+ def encode_chlorophylligenous(value) when is_integer(value), do: value
2476+ def encode_chlorophylligenous(_), do: {:error, "Unexpected type when encoding UnimpeachablyClass.chlorophylligenous"}
2477+
2478+ def decode_conversational(value) when is_integer(value), do: value
2479+ def decode_conversational(_), do: {:error, "Unexpected type when decoding UnimpeachablyClass.conversational"}
2480+
2481+ def encode_conversational(value) when is_integer(value), do: value
2482+ def encode_conversational(_), do: {:error, "Unexpected type when encoding UnimpeachablyClass.conversational"}
2483+
2484+ def decode_demiowl(value) when is_integer(value), do: value
2485+ def decode_demiowl(_), do: {:error, "Unexpected type when decoding UnimpeachablyClass.demiowl"}
2486+
2487+ def encode_demiowl(value) when is_integer(value), do: value
2488+ def encode_demiowl(_), do: {:error, "Unexpected type when encoding UnimpeachablyClass.demiowl"}
2489+
21362490 def decode_disdiapason(value) when is_binary(value), do: value
21372491 def decode_disdiapason(_), do: {:error, "Unexpected type when decoding UnimpeachablyClass.disdiapason"}
21382492
21392493 def encode_disdiapason(value) when is_binary(value), do: value
21402494 def encode_disdiapason(_), do: {:error, "Unexpected type when encoding UnimpeachablyClass.disdiapason"}
21412495
2496+ def decode_ectorhinal(value) when is_integer(value), do: value
2497+ def decode_ectorhinal(_), do: {:error, "Unexpected type when decoding UnimpeachablyClass.ectorhinal"}
2498+
2499+ def encode_ectorhinal(value) when is_integer(value), do: value
2500+ def encode_ectorhinal(_), do: {:error, "Unexpected type when encoding UnimpeachablyClass.ectorhinal"}
2501+
2502+ def decode_gamblesomeness(value) when is_integer(value), do: value
2503+ def decode_gamblesomeness(_), do: {:error, "Unexpected type when decoding UnimpeachablyClass.gamblesomeness"}
2504+
2505+ def encode_gamblesomeness(value) when is_integer(value), do: value
2506+ def encode_gamblesomeness(_), do: {:error, "Unexpected type when encoding UnimpeachablyClass.gamblesomeness"}
2507+
2508+ def decode_irrorate(value) when is_integer(value), do: value
2509+ def decode_irrorate(_), do: {:error, "Unexpected type when decoding UnimpeachablyClass.irrorate"}
2510+
2511+ def encode_irrorate(value) when is_integer(value), do: value
2512+ def encode_irrorate(_), do: {:error, "Unexpected type when encoding UnimpeachablyClass.irrorate"}
2513+
2514+ def decode_kindergartening(value) when is_integer(value), do: value
2515+ def decode_kindergartening(_), do: {:error, "Unexpected type when decoding UnimpeachablyClass.kindergartening"}
2516+
2517+ def encode_kindergartening(value) when is_integer(value), do: value
2518+ def encode_kindergartening(_), do: {:error, "Unexpected type when encoding UnimpeachablyClass.kindergartening"}
2519+
2520+ def decode_lateritic(value) when is_integer(value), do: value
2521+ def decode_lateritic(_), do: {:error, "Unexpected type when decoding UnimpeachablyClass.lateritic"}
2522+
2523+ def encode_lateritic(value) when is_integer(value), do: value
2524+ def encode_lateritic(_), do: {:error, "Unexpected type when encoding UnimpeachablyClass.lateritic"}
2525+
2526+ def decode_mespil(value) when is_integer(value), do: value
2527+ def decode_mespil(_), do: {:error, "Unexpected type when decoding UnimpeachablyClass.mespil"}
2528+
2529+ def encode_mespil(value) when is_integer(value), do: value
2530+ def encode_mespil(_), do: {:error, "Unexpected type when encoding UnimpeachablyClass.mespil"}
2531+
2532+ def decode_misconfiguration(value) when is_integer(value), do: value
2533+ def decode_misconfiguration(_), do: {:error, "Unexpected type when decoding UnimpeachablyClass.misconfiguration"}
2534+
2535+ def encode_misconfiguration(value) when is_integer(value), do: value
2536+ def encode_misconfiguration(_), do: {:error, "Unexpected type when encoding UnimpeachablyClass.misconfiguration"}
2537+
2538+ def decode_planometry(value) when is_integer(value), do: value
2539+ def decode_planometry(_), do: {:error, "Unexpected type when decoding UnimpeachablyClass.planometry"}
2540+
2541+ def encode_planometry(value) when is_integer(value), do: value
2542+ def encode_planometry(_), do: {:error, "Unexpected type when encoding UnimpeachablyClass.planometry"}
2543+
2544+ def decode_quiina(value) when is_integer(value), do: value
2545+ def decode_quiina(_), do: {:error, "Unexpected type when decoding UnimpeachablyClass.quiina"}
2546+
2547+ def encode_quiina(value) when is_integer(value), do: value
2548+ def encode_quiina(_), do: {:error, "Unexpected type when encoding UnimpeachablyClass.quiina"}
2549+
2550+ def decode_robert(value) when is_integer(value), do: value
2551+ def decode_robert(_), do: {:error, "Unexpected type when decoding UnimpeachablyClass.robert"}
2552+
2553+ def encode_robert(value) when is_integer(value), do: value
2554+ def encode_robert(_), do: {:error, "Unexpected type when encoding UnimpeachablyClass.robert"}
2555+
2556+ def decode_rot(value) when is_integer(value), do: value
2557+ def decode_rot(_), do: {:error, "Unexpected type when decoding UnimpeachablyClass.rot"}
2558+
2559+ def encode_rot(value) when is_integer(value), do: value
2560+ def encode_rot(_), do: {:error, "Unexpected type when encoding UnimpeachablyClass.rot"}
2561+
2562+ def decode_subcinctorium(value) when is_integer(value), do: value
2563+ def decode_subcinctorium(_), do: {:error, "Unexpected type when decoding UnimpeachablyClass.subcinctorium"}
2564+
2565+ def encode_subcinctorium(value) when is_integer(value), do: value
2566+ def encode_subcinctorium(_), do: {:error, "Unexpected type when encoding UnimpeachablyClass.subcinctorium"}
2567+
2568+ def decode_tussocker(value) when is_integer(value), do: value
2569+ def decode_tussocker(_), do: {:error, "Unexpected type when decoding UnimpeachablyClass.tussocker"}
2570+
2571+ def encode_tussocker(value) when is_integer(value), do: value
2572+ def encode_tussocker(_), do: {:error, "Unexpected type when encoding UnimpeachablyClass.tussocker"}
2573+
2574+ def decode_ultraproud(value) when is_integer(value), do: value
2575+ def decode_ultraproud(_), do: {:error, "Unexpected type when decoding UnimpeachablyClass.ultraproud"}
2576+
2577+ def encode_ultraproud(value) when is_integer(value), do: value
2578+ def encode_ultraproud(_), do: {:error, "Unexpected type when encoding UnimpeachablyClass.ultraproud"}
2579+
2580+ def decode_unsuggestedness(value) when is_integer(value), do: value
2581+ def decode_unsuggestedness(_), do: {:error, "Unexpected type when decoding UnimpeachablyClass.unsuggestedness"}
2582+
2583+ def encode_unsuggestedness(value) when is_integer(value), do: value
2584+ def encode_unsuggestedness(_), do: {:error, "Unexpected type when encoding UnimpeachablyClass.unsuggestedness"}
2585+
21422586 def from_map(m) do
21432587 %UnimpeachablyClass{
2144- acerin: m["acerin"],
2145- bobadil: m["Bobadil"],
2146- catharticalness: m["catharticalness"],
2147- chirotherium: m["Chirotherium"],
2148- chlorophylligenous: m["chlorophylligenous"],
2149- conversational: m["conversational"],
2150- demiowl: m["demiowl"],
2588+ acerin: m["acerin"] && decode_acerin(m["acerin"]),
2589+ bobadil: m["Bobadil"] && decode_bobadil(m["Bobadil"]),
2590+ catharticalness: m["catharticalness"] && decode_catharticalness(m["catharticalness"]),
2591+ chirotherium: m["Chirotherium"] && decode_chirotherium(m["Chirotherium"]),
2592+ chlorophylligenous: m["chlorophylligenous"] && decode_chlorophylligenous(m["chlorophylligenous"]),
2593+ conversational: m["conversational"] && decode_conversational(m["conversational"]),
2594+ demiowl: m["demiowl"] && decode_demiowl(m["demiowl"]),
21512595 disdiapason: m["disdiapason"] && decode_disdiapason(m["disdiapason"]),
2152- ectorhinal: m["ectorhinal"],
2153- gamblesomeness: m["gamblesomeness"],
2596+ ectorhinal: m["ectorhinal"] && decode_ectorhinal(m["ectorhinal"]),
2597+ gamblesomeness: m["gamblesomeness"] && decode_gamblesomeness(m["gamblesomeness"]),
21542598 homocerc: m["homocerc"],
2155- irrorate: m["irrorate"],
2156- kindergartening: m["kindergartening"],
2157- lateritic: m["lateritic"],
2158- mespil: m["mespil"],
2159- misconfiguration: m["misconfiguration"],
2599+ irrorate: m["irrorate"] && decode_irrorate(m["irrorate"]),
2600+ kindergartening: m["kindergartening"] && decode_kindergartening(m["kindergartening"]),
2601+ lateritic: m["lateritic"] && decode_lateritic(m["lateritic"]),
2602+ mespil: m["mespil"] && decode_mespil(m["mespil"]),
2603+ misconfiguration: m["misconfiguration"] && decode_misconfiguration(m["misconfiguration"]),
21602604 nonbookish: m["nonbookish"],
2161- planometry: m["planometry"],
2162- quiina: m["Quiina"],
2163- robert: m["Robert"],
2164- rot: m["rot"],
2165- subcinctorium: m["subcinctorium"],
2166- tussocker: m["tussocker"],
2167- ultraproud: m["ultraproud"],
2168- unsuggestedness: m["unsuggestedness"],
2605+ planometry: m["planometry"] && decode_planometry(m["planometry"]),
2606+ quiina: m["Quiina"] && decode_quiina(m["Quiina"]),
2607+ robert: m["Robert"] && decode_robert(m["Robert"]),
2608+ rot: m["rot"] && decode_rot(m["rot"]),
2609+ subcinctorium: m["subcinctorium"] && decode_subcinctorium(m["subcinctorium"]),
2610+ tussocker: m["tussocker"] && decode_tussocker(m["tussocker"]),
2611+ ultraproud: m["ultraproud"] && decode_ultraproud(m["ultraproud"]),
2612+ unsuggestedness: m["unsuggestedness"] && decode_unsuggestedness(m["unsuggestedness"]),
21692613 }
21702614 end
Test case

test/inputs/json/priority/nbl-stats.json

1 generated file · +21 −3
Melixirdefault / QuickType.ex+21 −3
@@ -816,6 +816,12 @@ defmodule Scorer do
816816 def encode_name(value) when is_binary(value), do: value
817817 def encode_name(_), do: {:error, "Unexpected type when encoding Scorer.name"}
818818
819+ def decode_per(value) when is_integer(value), do: value
820+ def decode_per(_), do: {:error, "Unexpected type when decoding Scorer.per"}
821+
822+ def encode_per(value) when is_integer(value), do: value
823+ def encode_per(_), do: {:error, "Unexpected type when encoding Scorer.per"}
824+
819825 def decode_player(value) when is_binary(value), do: value
820826 def decode_player(_), do: {:error, "Unexpected type when decoding Scorer.player"}
821827
@@ -846,6 +852,12 @@ defmodule Scorer do
846852 def encode_tno(value) when is_integer(value), do: value
847853 def encode_tno(_), do: {:error, "Unexpected type when encoding Scorer.tno"}
848854
855+ def decode_tot(value) when is_integer(value), do: value
856+ def decode_tot(_), do: {:error, "Unexpected type when decoding Scorer.tot"}
857+
858+ def encode_tot(value) when is_integer(value), do: value
859+ def encode_tot(_), do: {:error, "Unexpected type when encoding Scorer.tot"}
860+
849861 def from_map(m) do
850862 %Scorer{
851863 family_name: m["familyName"] && decode_family_name(m["familyName"]),
@@ -858,7 +870,7 @@ defmodule Scorer do
858870 international_first_name: m["internationalFirstName"] && decode_international_first_name(m["internationalFirstName"]),
859871 international_first_name_initial: m["internationalFirstNameInitial"] && FirstNameInitial.decode(m["internationalFirstNameInitial"]),
860872 name: m["name"] && decode_name(m["name"]),
861- per: m["per"],
873+ per: m["per"] && decode_per(m["per"]),
862874 per_type: m["perType"] && PerType.decode(m["perType"]),
863875 player: m["player"] && decode_player(m["player"]),
864876 pno: decode_pno(m["pno"]),
@@ -867,7 +879,7 @@ defmodule Scorer do
867879 summary: m["summary"] && decode_summary(m["summary"]),
868880 times: m["times"] && Enum.map(m["times"], &TimeElement.from_map/1),
869881 tno: decode_tno(m["tno"]),
870- tot: m["tot"],
882+ tot: m["tot"] && decode_tot(m["tot"]),
871883 }
872884 end
873885
@@ -1130,6 +1142,12 @@ defmodule Pl do
11301142 def encode_active(value) when is_integer(value), do: value
11311143 def encode_active(_), do: {:error, "Unexpected type when encoding Pl.active"}
11321144
1145+ def decode_captain(value) when is_integer(value), do: value
1146+ def decode_captain(_), do: {:error, "Unexpected type when decoding Pl.captain"}
1147+
1148+ def encode_captain(value) when is_integer(value), do: value
1149+ def encode_captain(_), do: {:error, "Unexpected type when encoding Pl.captain"}
1150+
11331151 def decode_eff_1(value) when is_integer(value), do: value
11341152 def decode_eff_1(_), do: {:error, "Unexpected type when decoding Pl.eff_1"}
11351153
@@ -1389,7 +1407,7 @@ defmodule Pl do
13891407 def from_map(m) do
13901408 %Pl{
13911409 active: decode_active(m["active"]),
1392- captain: m["captain"],
1410+ captain: m["captain"] && decode_captain(m["captain"]),
13931411 comp: m["comp"] && Comp.from_map(m["comp"]),
13941412 eff_1: decode_eff_1(m["eff_1"]),
13951413 eff_2: decode_eff_2(m["eff_2"]),
Test case

test/inputs/json/samples/github-events.json

1 generated file · +28 −4
Melixirdefault / QuickType.ex+28 −4
@@ -2233,6 +2233,12 @@ defmodule Payload do
22332233 def encode_description(value) when is_binary(value), do: value
22342234 def encode_description(_), do: {:error, "Unexpected type when encoding Payload.description"}
22352235
2236+ def decode_distinct_size(value) when is_integer(value), do: value
2237+ def decode_distinct_size(_), do: {:error, "Unexpected type when decoding Payload.distinct_size"}
2238+
2239+ def encode_distinct_size(value) when is_integer(value), do: value
2240+ def encode_distinct_size(_), do: {:error, "Unexpected type when encoding Payload.distinct_size"}
2241+
22362242 def decode_head(value) when is_binary(value), do: value
22372243 def decode_head(_), do: {:error, "Unexpected type when decoding Payload.head"}
22382244
@@ -2245,6 +2251,18 @@ defmodule Payload do
22452251 def encode_master_branch(value) when is_binary(value), do: value
22462252 def encode_master_branch(_), do: {:error, "Unexpected type when encoding Payload.master_branch"}
22472253
2254+ def decode_number(value) when is_integer(value), do: value
2255+ def decode_number(_), do: {:error, "Unexpected type when decoding Payload.number"}
2256+
2257+ def encode_number(value) when is_integer(value), do: value
2258+ def encode_number(_), do: {:error, "Unexpected type when encoding Payload.number"}
2259+
2260+ def decode_push_id(value) when is_integer(value), do: value
2261+ def decode_push_id(_), do: {:error, "Unexpected type when decoding Payload.push_id"}
2262+
2263+ def encode_push_id(value) when is_integer(value), do: value
2264+ def encode_push_id(_), do: {:error, "Unexpected type when encoding Payload.push_id"}
2265+
22482266 def decode_pusher_type(value) when is_binary(value), do: value
22492267 def decode_pusher_type(_), do: {:error, "Unexpected type when decoding Payload.pusher_type"}
22502268
@@ -2263,6 +2281,12 @@ defmodule Payload do
22632281 def encode_ref_type(value) when is_binary(value), do: value
22642282 def encode_ref_type(_), do: {:error, "Unexpected type when encoding Payload.ref_type"}
22652283
2284+ def decode_size(value) when is_integer(value), do: value
2285+ def decode_size(_), do: {:error, "Unexpected type when decoding Payload.size"}
2286+
2287+ def encode_size(value) when is_integer(value), do: value
2288+ def encode_size(_), do: {:error, "Unexpected type when encoding Payload.size"}
2289+
22662290 def from_map(m) do
22672291 %Payload{
22682292 action: m["action"] && decode_action(m["action"]),
@@ -2270,17 +2294,17 @@ defmodule Payload do
22702294 comment: m["comment"] && Comment.from_map(m["comment"]),
22712295 commits: m["commits"] && Enum.map(m["commits"], &Commit.from_map/1),
22722296 description: m["description"] && decode_description(m["description"]),
2273- distinct_size: m["distinct_size"],
2297+ distinct_size: m["distinct_size"] && decode_distinct_size(m["distinct_size"]),
22742298 head: m["head"] && decode_head(m["head"]),
22752299 issue: m["issue"] && Issue.from_map(m["issue"]),
22762300 master_branch: m["master_branch"] && decode_master_branch(m["master_branch"]),
2277- number: m["number"],
2301+ number: m["number"] && decode_number(m["number"]),
22782302 pull_request: m["pull_request"] && PayloadPullRequest.from_map(m["pull_request"]),
2279- push_id: m["push_id"],
2303+ push_id: m["push_id"] && decode_push_id(m["push_id"]),
22802304 pusher_type: m["pusher_type"] && decode_pusher_type(m["pusher_type"]),
22812305 ref: m["ref"] && decode_ref(m["ref"]),
22822306 ref_type: m["ref_type"] && decode_ref_type(m["ref_type"]),
2283- size: m["size"],
2307+ size: m["size"] && decode_size(m["size"]),
22842308 }
22852309 end
Test case

test/inputs/json/samples/pokedex.json

1 generated file · +7 −1
Melixirdefault / QuickType.ex+7 −1
@@ -202,6 +202,12 @@ defmodule Pokemon do
202202 def encode_candy(value) when is_binary(value), do: value
203203 def encode_candy(_), do: {:error, "Unexpected type when encoding Pokemon.candy"}
204204
205+ def decode_candy_count(value) when is_integer(value), do: value
206+ def decode_candy_count(_), do: {:error, "Unexpected type when decoding Pokemon.candy_count"}
207+
208+ def encode_candy_count(value) when is_integer(value), do: value
209+ def encode_candy_count(_), do: {:error, "Unexpected type when encoding Pokemon.candy_count"}
210+
205211 def decode_height(value) when is_binary(value), do: value
206212 def decode_height(_), do: {:error, "Unexpected type when decoding Pokemon.height"}
207213
@@ -276,7 +282,7 @@ defmodule Pokemon do
276282 %Pokemon{
277283 avg_spawns: decode_avg_spawns(m["avg_spawns"]),
278284 candy: decode_candy(m["candy"]),
279- candy_count: m["candy_count"],
285+ candy_count: m["candy_count"] && decode_candy_count(m["candy_count"]),
280286 egg: Egg.decode(m["egg"]),
281287 height: decode_height(m["height"]),
282288 id: decode_id(m["id"]),
Test case

test/inputs/schema/class-map-union.schema

1 generated file · +7 −1
Mschema-elixirdefault / QuickType.ex+7 −1
@@ -12,9 +12,15 @@ defmodule UnionClass do
1212 quux: integer() | nil
1313 }
1414
15+ def decode_quux(value) when is_integer(value), do: value
16+ def decode_quux(_), do: {:error, "Unexpected type when decoding UnionClass.quux"}
17+
18+ def encode_quux(value) when is_integer(value), do: value
19+ def encode_quux(_), do: {:error, "Unexpected type when encoding UnionClass.quux"}
20+
1521 def from_map(m) do
1622 %UnionClass{
17- quux: m["quux"],
23+ quux: m["quux"] && decode_quux(m["quux"]),
1824 }
1925 end
Test case

test/inputs/schema/description.schema

1 generated file · +9 −1
Mschema-elixirdefault / QuickType.ex+9 −1
@@ -119,6 +119,14 @@ defmodule TopLevel do
119119 union: float() | String.t()
120120 }
121121
122+ def decode_foo(value) when is_float(value), do: value
123+ def decode_foo(value) when is_integer(value), do: value
124+ def decode_foo(_), do: {:error, "Unexpected type when decoding TopLevel.foo"}
125+
126+ def encode_foo(value) when is_float(value), do: value
127+ def encode_foo(value) when is_integer(value), do: value
128+ def encode_foo(_), do: {:error, "Unexpected type when encoding TopLevel.foo"}
129+
122130 def decode_object_or_string(%{"prop" => _,} = value), do: ObjectOrStringClass.from_map(value)
123131 def decode_object_or_string(value) when is_binary(value), do: value
124132 def decode_object_or_string(_), do: {:error, "Unexpected type when decoding TopLevel.object_or_string"}
@@ -131,7 +139,7 @@ defmodule TopLevel do
131139 %TopLevel{
132140 bar: m["bar"],
133141 enum: EnumEnum.decode(m["enum"]),
134- foo: m["foo"],
142+ foo: m["foo"] && decode_foo(m["foo"]),
135143 object_or_string: decode_object_or_string(m["object-or-string"]),
136144 union: Map.fetch!(m, "union"),
137145 }
Test case

test/inputs/schema/integer-type.schema

1 generated file · +8 −8
Mschema-elixirdefault / QuickType.ex+8 −8
@@ -21,49 +21,49 @@ defmodule TopLevel do
2121 unbounded: integer()
2222 }
2323
24- def decode_above_i32_max(value) when is_integer(value), do: value
24+ def decode_above_i32_max(value) when is_integer(value) and value >= 0 and value <= 2147483648, do: value
2525 def decode_above_i32_max(_), do: {:error, "Unexpected type when decoding TopLevel.above_i32_max"}
2626
2727 def encode_above_i32_max(value) when is_integer(value), do: value
2828 def encode_above_i32_max(_), do: {:error, "Unexpected type when encoding TopLevel.above_i32_max"}
2929
30- def decode_below_i32_min(value) when is_integer(value), do: value
30+ def decode_below_i32_min(value) when is_integer(value) and value >= -2147483649 and value <= 0, do: value
3131 def decode_below_i32_min(_), do: {:error, "Unexpected type when decoding TopLevel.below_i32_min"}
3232
3333 def encode_below_i32_min(value) when is_integer(value), do: value
3434 def encode_below_i32_min(_), do: {:error, "Unexpected type when encoding TopLevel.below_i32_min"}
3535
36- def decode_i32_range(value) when is_integer(value), do: value
36+ def decode_i32_range(value) when is_integer(value) and value >= -2147483648 and value <= 2147483647, do: value
3737 def decode_i32_range(_), do: {:error, "Unexpected type when decoding TopLevel.i32_range"}
3838
3939 def encode_i32_range(value) when is_integer(value), do: value
4040 def encode_i32_range(_), do: {:error, "Unexpected type when encoding TopLevel.i32_range"}
4141
42- def decode_large_bounds(value) when is_integer(value), do: value
42+ def decode_large_bounds(value) when is_integer(value) and value >= -9007199254740991 and value <= 9007199254740991, do: value
4343 def decode_large_bounds(_), do: {:error, "Unexpected type when decoding TopLevel.large_bounds"}
4444
4545 def encode_large_bounds(value) when is_integer(value), do: value
4646 def encode_large_bounds(_), do: {:error, "Unexpected type when encoding TopLevel.large_bounds"}
4747
48- def decode_only_maximum(value) when is_integer(value), do: value
48+ def decode_only_maximum(value) when is_integer(value) and value <= 0, do: value
4949 def decode_only_maximum(_), do: {:error, "Unexpected type when decoding TopLevel.only_maximum"}
5050
5151 def encode_only_maximum(value) when is_integer(value), do: value
5252 def encode_only_maximum(_), do: {:error, "Unexpected type when encoding TopLevel.only_maximum"}
5353
54- def decode_only_minimum(value) when is_integer(value), do: value
54+ def decode_only_minimum(value) when is_integer(value) and value >= 0, do: value
5555 def decode_only_minimum(_), do: {:error, "Unexpected type when decoding TopLevel.only_minimum"}
5656
5757 def encode_only_minimum(value) when is_integer(value), do: value
5858 def encode_only_minimum(_), do: {:error, "Unexpected type when encoding TopLevel.only_minimum"}
5959
60- def decode_small_negative(value) when is_integer(value), do: value
60+ def decode_small_negative(value) when is_integer(value) and value >= -100 and value <= 0, do: value
6161 def decode_small_negative(_), do: {:error, "Unexpected type when decoding TopLevel.small_negative"}
6262
6363 def encode_small_negative(value) when is_integer(value), do: value
6464 def encode_small_negative(_), do: {:error, "Unexpected type when encoding TopLevel.small_negative"}
6565
66- def decode_small_positive(value) when is_integer(value), do: value
66+ def decode_small_positive(value) when is_integer(value) and value >= 0 and value <= 100, do: value
6767 def decode_small_positive(_), do: {:error, "Unexpected type when decoding TopLevel.small_positive"}
6868
6969 def encode_small_positive(value) when is_integer(value), do: value
Test case

test/inputs/schema/intersection-nested.schema

1 generated file · +9 −1
Mschema-elixirdefault / QuickType.ex+9 −1
@@ -12,9 +12,17 @@ defmodule TopLevel do
1212 intersection: float() | nil
1313 }
1414
15+ def decode_intersection(value) when is_float(value), do: value
16+ def decode_intersection(value) when is_integer(value), do: value
17+ def decode_intersection(_), do: {:error, "Unexpected type when decoding TopLevel.intersection"}
18+
19+ def encode_intersection(value) when is_float(value), do: value
20+ def encode_intersection(value) when is_integer(value), do: value
21+ def encode_intersection(_), do: {:error, "Unexpected type when encoding TopLevel.intersection"}
22+
1523 def from_map(m) do
1624 %TopLevel{
17- intersection: m["intersection"],
25+ intersection: m["intersection"] && decode_intersection(m["intersection"]),
1826 }
1927 end
Test case

test/inputs/schema/keyword-unions.schema

1 generated file · +9 −1
Mschema-elixirdefault / QuickType.ex+9 −1
@@ -9204,6 +9204,14 @@ defmodule TopLevel do
92049204 def encode_double(value) when is_nil(value), do: value
92059205 def encode_double(_), do: {:error, "Unexpected type when encoding TopLevel.double"}
92069206
9207+ def decode_dummy(value) when is_float(value), do: value
9208+ def decode_dummy(value) when is_integer(value), do: value
9209+ def decode_dummy(_), do: {:error, "Unexpected type when decoding TopLevel.dummy"}
9210+
9211+ def encode_dummy(value) when is_float(value), do: value
9212+ def encode_dummy(value) when is_integer(value), do: value
9213+ def encode_dummy(_), do: {:error, "Unexpected type when encoding TopLevel.dummy"}
9214+
92079215 def decode_dynamic(%{} = value), do: Dynamic.from_map(value)
92089216 def decode_dynamic(value) when is_float(value), do: value
92099217 def decode_dynamic(value) when is_integer(value), do: value
@@ -11682,7 +11690,7 @@ defmodule TopLevel do
1168211690 did_set: decode_did_set(m["didSet"]),
1168311691 top_level_do: decode_top_level_do(m["do"]),
1168411692 double: decode_double(m["double"]),
11685- dummy: m["dummy"],
11693+ dummy: m["dummy"] && decode_dummy(m["dummy"]),
1168611694 dynamic: decode_dynamic(m["dynamic"]),
1168711695 dynamic_cast: decode_dynamic_cast(m["dynamic_cast"]),
1168811696 elif: decode_elif(m["elif"]),
Test case

test/inputs/schema/minmax-integer.schema

1 generated file · +6 −6
Mschema-elixirdefault / QuickType.ex+6 −6
@@ -26,31 +26,31 @@ defmodule TopLevel do
2626 def encode_free(value) when is_integer(value), do: value
2727 def encode_free(_), do: {:error, "Unexpected type when encoding TopLevel.free"}
2828
29- def decode_intersection(value) when is_integer(value), do: value
29+ def decode_intersection(value) when is_integer(value) and value >= 4 and value <= 5, do: value
3030 def decode_intersection(_), do: {:error, "Unexpected type when decoding TopLevel.intersection"}
3131
3232 def encode_intersection(value) when is_integer(value), do: value
3333 def encode_intersection(_), do: {:error, "Unexpected type when encoding TopLevel.intersection"}
3434
35- def decode_max(value) when is_integer(value), do: value
35+ def decode_max(value) when is_integer(value) and value <= 5, do: value
3636 def decode_max(_), do: {:error, "Unexpected type when decoding TopLevel.max"}
3737
3838 def encode_max(value) when is_integer(value), do: value
3939 def encode_max(_), do: {:error, "Unexpected type when encoding TopLevel.max"}
4040
41- def decode_min(value) when is_integer(value), do: value
41+ def decode_min(value) when is_integer(value) and value >= 3, do: value
4242 def decode_min(_), do: {:error, "Unexpected type when decoding TopLevel.min"}
4343
4444 def encode_min(value) when is_integer(value), do: value
4545 def encode_min(_), do: {:error, "Unexpected type when encoding TopLevel.min"}
4646
47- def decode_minmax(value) when is_integer(value), do: value
47+ def decode_minmax(value) when is_integer(value) and value >= 3 and value <= 5, do: value
4848 def decode_minmax(_), do: {:error, "Unexpected type when decoding TopLevel.minmax"}
4949
5050 def encode_minmax(value) when is_integer(value), do: value
5151 def encode_minmax(_), do: {:error, "Unexpected type when encoding TopLevel.minmax"}
5252
53- def decode_min_max_intersection(value) when is_integer(value), do: value
53+ def decode_min_max_intersection(value) when is_integer(value) and value >= 3 and value <= 5, do: value
5454 def decode_min_max_intersection(_), do: {:error, "Unexpected type when decoding TopLevel.min_max_intersection"}
5555
5656 def encode_min_max_intersection(value) when is_integer(value), do: value
@@ -62,7 +62,7 @@ defmodule TopLevel do
6262 def encode_min_max_union(value) when is_integer(value), do: value
6363 def encode_min_max_union(_), do: {:error, "Unexpected type when encoding TopLevel.min_max_union"}
6464
65- def decode_union(value) when is_integer(value), do: value
65+ def decode_union(value) when is_integer(value) and value >= 3 and value <= 6, do: value
6666 def decode_union(_), do: {:error, "Unexpected type when decoding TopLevel.union"}
6767
6868 def encode_union(value) when is_integer(value), do: value
Test case

test/inputs/schema/minmax.schema

1 generated file · +12 −12
Mschema-elixirdefault / QuickType.ex+12 −12
@@ -28,40 +28,40 @@ defmodule TopLevel do
2828 def encode_free(value) when is_integer(value), do: value
2929 def encode_free(_), do: {:error, "Unexpected type when encoding TopLevel.free"}
3030
31- def decode_intersection(value) when is_float(value), do: value
32- def decode_intersection(value) when is_integer(value), do: value
31+ def decode_intersection(value) when is_float(value) and value >= 4 and value <= 5, do: value
32+ def decode_intersection(value) when is_integer(value) and value >= 4 and value <= 5, do: value
3333 def decode_intersection(_), do: {:error, "Unexpected type when decoding TopLevel.intersection"}
3434
3535 def encode_intersection(value) when is_float(value), do: value
3636 def encode_intersection(value) when is_integer(value), do: value
3737 def encode_intersection(_), do: {:error, "Unexpected type when encoding TopLevel.intersection"}
3838
39- def decode_max(value) when is_float(value), do: value
40- def decode_max(value) when is_integer(value), do: value
39+ def decode_max(value) when is_float(value) and value <= 5, do: value
40+ def decode_max(value) when is_integer(value) and value <= 5, do: value
4141 def decode_max(_), do: {:error, "Unexpected type when decoding TopLevel.max"}
4242
4343 def encode_max(value) when is_float(value), do: value
4444 def encode_max(value) when is_integer(value), do: value
4545 def encode_max(_), do: {:error, "Unexpected type when encoding TopLevel.max"}
4646
47- def decode_min(value) when is_float(value), do: value
48- def decode_min(value) when is_integer(value), do: value
47+ def decode_min(value) when is_float(value) and value >= 3, do: value
48+ def decode_min(value) when is_integer(value) and value >= 3, do: value
4949 def decode_min(_), do: {:error, "Unexpected type when decoding TopLevel.min"}
5050
5151 def encode_min(value) when is_float(value), do: value
5252 def encode_min(value) when is_integer(value), do: value
5353 def encode_min(_), do: {:error, "Unexpected type when encoding TopLevel.min"}
5454
55- def decode_minmax(value) when is_float(value), do: value
56- def decode_minmax(value) when is_integer(value), do: value
55+ def decode_minmax(value) when is_float(value) and value >= 3 and value <= 5, do: value
56+ def decode_minmax(value) when is_integer(value) and value >= 3 and value <= 5, do: value
5757 def decode_minmax(_), do: {:error, "Unexpected type when decoding TopLevel.minmax"}
5858
5959 def encode_minmax(value) when is_float(value), do: value
6060 def encode_minmax(value) when is_integer(value), do: value
6161 def encode_minmax(_), do: {:error, "Unexpected type when encoding TopLevel.minmax"}
6262
63- def decode_min_max_intersection(value) when is_float(value), do: value
64- def decode_min_max_intersection(value) when is_integer(value), do: value
63+ def decode_min_max_intersection(value) when is_float(value) and value >= 3 and value <= 5, do: value
64+ def decode_min_max_intersection(value) when is_integer(value) and value >= 3 and value <= 5, do: value
6565 def decode_min_max_intersection(_), do: {:error, "Unexpected type when decoding TopLevel.min_max_intersection"}
6666
6767 def encode_min_max_intersection(value) when is_float(value), do: value
@@ -76,8 +76,8 @@ defmodule TopLevel do
7676 def encode_min_max_union(value) when is_integer(value), do: value
7777 def encode_min_max_union(_), do: {:error, "Unexpected type when encoding TopLevel.min_max_union"}
7878
79- def decode_union(value) when is_float(value), do: value
80- def decode_union(value) when is_integer(value), do: value
79+ def decode_union(value) when is_float(value) and value >= 3 and value <= 6, do: value
80+ def decode_union(value) when is_integer(value) and value >= 3 and value <= 6, do: value
8181 def decode_union(_), do: {:error, "Unexpected type when decoding TopLevel.union"}
8282
8383 def encode_union(value) when is_float(value), do: value
Test case

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

1 generated file · +17 −3
Mschema-elixirdefault / QuickType.ex+17 −3
@@ -71,6 +71,12 @@ defmodule TopLevel do
7171 weight: float() | nil
7272 }
7373
74+ def decode_count(value) when is_integer(value) and value >= 1 and value <= 100, do: value
75+ def decode_count(_), do: {:error, "Unexpected type when decoding TopLevel.count"}
76+
77+ def encode_count(value) when is_integer(value), do: value
78+ def encode_count(_), do: {:error, "Unexpected type when encoding TopLevel.count"}
79+
7480 def decode_label(value) when is_binary(value) do
7581 if String.length(value) >= 2 and String.length(value) <= 16, do: value, else: raise(ArgumentError)
7682 end
@@ -85,7 +91,7 @@ defmodule TopLevel do
8591 def encode_required_coordinates(value) when is_list(value), do: value
8692 def encode_required_coordinates(_), do: {:error, "Unexpected type when encoding TopLevel.required_coordinates"}
8793
88- def decode_required_count(value) when is_integer(value), do: value
94+ def decode_required_count(value) when is_integer(value) and value >= 1 and value <= 100, do: value
8995 def decode_required_count(_), do: {:error, "Unexpected type when decoding TopLevel.required_count"}
9096
9197 def encode_required_count(value) when is_integer(value), do: value
@@ -99,15 +105,23 @@ defmodule TopLevel do
99105 def encode_required_label(value) when is_binary(value), do: value
100106 def encode_required_label(_), do: {:error, "Unexpected type when encoding TopLevel.required_label"}
101107
108+ def decode_weight(value) when is_float(value) and value >= 0.5 and value <= 99.5, do: value
109+ def decode_weight(value) when is_integer(value) and value >= 0.5 and value <= 99.5, do: value
110+ def decode_weight(_), do: {:error, "Unexpected type when decoding TopLevel.weight"}
111+
112+ def encode_weight(value) when is_float(value), do: value
113+ def encode_weight(value) when is_integer(value), do: value
114+ def encode_weight(_), do: {:error, "Unexpected type when encoding TopLevel.weight"}
115+
102116 def from_map(m) do
103117 %TopLevel{
104118 coordinates: m["coordinates"] && Enum.map(m["coordinates"], &Coordinate.from_map/1),
105- count: m["count"],
119+ count: m["count"] && decode_count(m["count"]),
106120 label: m["label"] && decode_label(m["label"]),
107121 required_coordinates: Enum.map(m["requiredCoordinates"], &Coordinate.from_map/1),
108122 required_count: decode_required_count(m["requiredCount"]),
109123 required_label: decode_required_label(m["requiredLabel"]),
110- weight: m["weight"],
124+ weight: m["weight"] && decode_weight(m["weight"]),
111125 }
112126 end
Test case

test/inputs/schema/optional-constraints.schema

1 generated file · +17 −3
Mschema-elixirdefault / QuickType.ex+17 −3
@@ -17,6 +17,20 @@ defmodule TopLevel do
1717 req_zero_min: integer()
1818 }
1919
20+ def decode_opt_double(value) when is_float(value) and value >= 0.5 and value <= 99.5, do: value
21+ def decode_opt_double(value) when is_integer(value) and value >= 0.5 and value <= 99.5, do: value
22+ def decode_opt_double(_), do: {:error, "Unexpected type when decoding TopLevel.opt_double"}
23+
24+ def encode_opt_double(value) when is_float(value), do: value
25+ def encode_opt_double(value) when is_integer(value), do: value
26+ def encode_opt_double(_), do: {:error, "Unexpected type when encoding TopLevel.opt_double"}
27+
28+ def decode_opt_int(value) when is_integer(value) and value >= 0 and value <= 100, do: value
29+ def decode_opt_int(_), do: {:error, "Unexpected type when decoding TopLevel.opt_int"}
30+
31+ def encode_opt_int(value) when is_integer(value), do: value
32+ def encode_opt_int(_), do: {:error, "Unexpected type when encoding TopLevel.opt_int"}
33+
2034 def decode_opt_pattern(value) when is_binary(value) do
2135 if Regex.match?(Regex.compile!("^[a-z]+$"), value), do: value, else: raise(ArgumentError)
2236 end
@@ -33,7 +47,7 @@ defmodule TopLevel do
3347 def encode_opt_string(value) when is_binary(value), do: value
3448 def encode_opt_string(_), do: {:error, "Unexpected type when encoding TopLevel.opt_string"}
3549
36- def decode_req_zero_min(value) when is_integer(value), do: value
50+ def decode_req_zero_min(value) when is_integer(value) and value >= 0 and value <= 100, do: value
3751 def decode_req_zero_min(_), do: {:error, "Unexpected type when decoding TopLevel.req_zero_min"}
3852
3953 def encode_req_zero_min(value) when is_integer(value), do: value
@@ -41,8 +55,8 @@ defmodule TopLevel do
4155
4256 def from_map(m) do
4357 %TopLevel{
44- opt_double: m["optDouble"],
45- opt_int: m["optInt"],
58+ opt_double: m["optDouble"] && decode_opt_double(m["optDouble"]),
59+ opt_int: m["optInt"] && decode_opt_int(m["optInt"]),
4660 opt_pattern: m["optPattern"] && decode_opt_pattern(m["optPattern"]),
4761 opt_string: m["optString"] && decode_opt_string(m["optString"]),
4862 req_zero_min: decode_req_zero_min(m["reqZeroMin"]),
Test case

test/inputs/schema/renaming-bug.schema

1 generated file · +27 −3
Mschema-elixirdefault / QuickType.ex+27 −3
@@ -12,9 +12,17 @@ defmodule Color do
1212 rgb: float() | nil
1313 }
1414
15+ def decode_rgb(value) when is_float(value), do: value
16+ def decode_rgb(value) when is_integer(value), do: value
17+ def decode_rgb(_), do: {:error, "Unexpected type when decoding Color.rgb"}
18+
19+ def encode_rgb(value) when is_float(value), do: value
20+ def encode_rgb(value) when is_integer(value), do: value
21+ def encode_rgb(_), do: {:error, "Unexpected type when encoding Color.rgb"}
22+
1523 def from_map(m) do
1624 %Color{
17- rgb: m["rgb"],
25+ rgb: m["rgb"] && decode_rgb(m["rgb"]),
1826 }
1927 end
2028
@@ -363,10 +371,26 @@ defmodule Limit do
363371 minimum: float() | nil
364372 }
365373
374+ def decode_maximum(value) when is_float(value), do: value
375+ def decode_maximum(value) when is_integer(value), do: value
376+ def decode_maximum(_), do: {:error, "Unexpected type when decoding Limit.maximum"}
377+
378+ def encode_maximum(value) when is_float(value), do: value
379+ def encode_maximum(value) when is_integer(value), do: value
380+ def encode_maximum(_), do: {:error, "Unexpected type when encoding Limit.maximum"}
381+
382+ def decode_minimum(value) when is_float(value), do: value
383+ def decode_minimum(value) when is_integer(value), do: value
384+ def decode_minimum(_), do: {:error, "Unexpected type when decoding Limit.minimum"}
385+
386+ def encode_minimum(value) when is_float(value), do: value
387+ def encode_minimum(value) when is_integer(value), do: value
388+ def encode_minimum(_), do: {:error, "Unexpected type when encoding Limit.minimum"}
389+
366390 def from_map(m) do
367391 %Limit{
368- maximum: m["maximum"],
369- minimum: m["minimum"],
392+ maximum: m["maximum"] && decode_maximum(m["maximum"]),
393+ minimum: m["minimum"] && decode_minimum(m["minimum"]),
370394 }
371395 end
Test case

test/inputs/schema/schema-constraints.schema

1 generated file · +2 −2
Mschema-elixirdefault / QuickType.ex+2 −2
@@ -22,8 +22,8 @@ defmodule TopLevel do
2222 def encode_min_max_length(value) when is_binary(value), do: value
2323 def encode_min_max_length(_), do: {:error, "Unexpected type when encoding TopLevel.min_max_length"}
2424
25- def decode_percent(value) when is_float(value), do: value
26- def decode_percent(value) when is_integer(value), do: value
25+ def decode_percent(value) when is_float(value) and value >= 0 and value <= 1, do: value
26+ def decode_percent(value) when is_integer(value) and value >= 0 and value <= 1, do: value
2727 def decode_percent(_), do: {:error, "Unexpected type when decoding TopLevel.percent"}
2828
2929 def encode_percent(value) when is_float(value), do: value
Test case

test/inputs/schema/union.schema

1 generated file · +16 −2
Mschema-elixirdefault / QuickType.ex+16 −2
@@ -15,17 +15,31 @@ defmodule TopLevelElement do
1515 three: float() | nil
1616 }
1717
18+ def decode_one(value) when is_integer(value), do: value
19+ def decode_one(_), do: {:error, "Unexpected type when decoding TopLevelElement.one"}
20+
21+ def encode_one(value) when is_integer(value), do: value
22+ def encode_one(_), do: {:error, "Unexpected type when encoding TopLevelElement.one"}
23+
1824 def decode_two(value) when is_boolean(value), do: value
1925 def decode_two(_), do: {:error, "Unexpected type when decoding TopLevelElement.two"}
2026
2127 def encode_two(value) when is_boolean(value), do: value
2228 def encode_two(_), do: {:error, "Unexpected type when encoding TopLevelElement.two"}
2329
30+ def decode_three(value) when is_float(value), do: value
31+ def decode_three(value) when is_integer(value), do: value
32+ def decode_three(_), do: {:error, "Unexpected type when decoding TopLevelElement.three"}
33+
34+ def encode_three(value) when is_float(value), do: value
35+ def encode_three(value) when is_integer(value), do: value
36+ def encode_three(_), do: {:error, "Unexpected type when encoding TopLevelElement.three"}
37+
2438 def from_map(m) do
2539 %TopLevelElement{
26- one: m["one"],
40+ one: m["one"] && decode_one(m["one"]),
2741 two: decode_two(m["two"]),
28- three: m["three"],
42+ three: m["three"] && decode_three(m["three"]),
2943 }
3044 end
Test case

test/inputs/schema/vega-lite.schema

1 generated file · +2,210 −258
Mschema-elixirdefault / QuickType.ex+2,210 −258
@@ -661,27 +661,67 @@ defmodule MarkConfig do
661661 theta: float() | nil
662662 }
663663
664+ def decode_angle(value) when is_float(value) and value >= 0 and value <= 360, do: value
665+ def decode_angle(value) when is_integer(value) and value >= 0 and value <= 360, do: value
666+ def decode_angle(_), do: {:error, "Unexpected type when decoding MarkConfig.angle"}
667+
668+ def encode_angle(value) when is_float(value), do: value
669+ def encode_angle(value) when is_integer(value), do: value
670+ def encode_angle(_), do: {:error, "Unexpected type when encoding MarkConfig.angle"}
671+
664672 def decode_color(value) when is_binary(value), do: value
665673 def decode_color(_), do: {:error, "Unexpected type when decoding MarkConfig.color"}
666674
667675 def encode_color(value) when is_binary(value), do: value
668676 def encode_color(_), do: {:error, "Unexpected type when encoding MarkConfig.color"}
669677
678+ def decode_dx(value) when is_float(value), do: value
679+ def decode_dx(value) when is_integer(value), do: value
680+ def decode_dx(_), do: {:error, "Unexpected type when decoding MarkConfig.dx"}
681+
682+ def encode_dx(value) when is_float(value), do: value
683+ def encode_dx(value) when is_integer(value), do: value
684+ def encode_dx(_), do: {:error, "Unexpected type when encoding MarkConfig.dx"}
685+
686+ def decode_dy(value) when is_float(value), do: value
687+ def decode_dy(value) when is_integer(value), do: value
688+ def decode_dy(_), do: {:error, "Unexpected type when decoding MarkConfig.dy"}
689+
690+ def encode_dy(value) when is_float(value), do: value
691+ def encode_dy(value) when is_integer(value), do: value
692+ def encode_dy(_), do: {:error, "Unexpected type when encoding MarkConfig.dy"}
693+
670694 def decode_fill(value) when is_binary(value), do: value
671695 def decode_fill(_), do: {:error, "Unexpected type when decoding MarkConfig.fill"}
672696
673697 def encode_fill(value) when is_binary(value), do: value
674698 def encode_fill(_), do: {:error, "Unexpected type when encoding MarkConfig.fill"}
675699
700+ def decode_fill_opacity(value) when is_float(value) and value >= 0 and value <= 1, do: value
701+ def decode_fill_opacity(value) when is_integer(value) and value >= 0 and value <= 1, do: value
702+ def decode_fill_opacity(_), do: {:error, "Unexpected type when decoding MarkConfig.fill_opacity"}
703+
704+ def encode_fill_opacity(value) when is_float(value), do: value
705+ def encode_fill_opacity(value) when is_integer(value), do: value
706+ def encode_fill_opacity(_), do: {:error, "Unexpected type when encoding MarkConfig.fill_opacity"}
707+
676708 def decode_font(value) when is_binary(value), do: value
677709 def decode_font(_), do: {:error, "Unexpected type when decoding MarkConfig.font"}
678710
679711 def encode_font(value) when is_binary(value), do: value
680712 def encode_font(_), do: {:error, "Unexpected type when encoding MarkConfig.font"}
681713
714+ def decode_font_size(value) when is_float(value) and value >= 0, do: value
715+ def decode_font_size(value) when is_integer(value) and value >= 0, do: value
716+ def decode_font_size(_), do: {:error, "Unexpected type when decoding MarkConfig.font_size"}
717+
718+ def encode_font_size(value) when is_float(value), do: value
719+ def encode_font_size(value) when is_integer(value), do: value
720+ def encode_font_size(_), do: {:error, "Unexpected type when encoding MarkConfig.font_size"}
721+
682722 def decode_font_weight(value) when is_binary(value), do: FontWeight.decode(value)
683- def decode_font_weight(value) when is_float(value), do: value
684- def decode_font_weight(value) when is_integer(value), do: value
723+ def decode_font_weight(value) when is_float(value) and value >= 100 and value <= 900, do: value
724+ def decode_font_weight(value) when is_integer(value) and value >= 100 and value <= 900, do: value
685725 def decode_font_weight(value) when is_nil(value), do: value
686726 def decode_font_weight(_), do: {:error, "Unexpected type when decoding MarkConfig.font_weight"}
687727
@@ -697,56 +737,128 @@ defmodule MarkConfig do
697737 def encode_href(value) when is_binary(value), do: value
698738 def encode_href(_), do: {:error, "Unexpected type when encoding MarkConfig.href"}
699739
740+ def decode_limit(value) when is_float(value), do: value
741+ def decode_limit(value) when is_integer(value), do: value
742+ def decode_limit(_), do: {:error, "Unexpected type when decoding MarkConfig.limit"}
743+
744+ def encode_limit(value) when is_float(value), do: value
745+ def encode_limit(value) when is_integer(value), do: value
746+ def encode_limit(_), do: {:error, "Unexpected type when encoding MarkConfig.limit"}
747+
748+ def decode_opacity(value) when is_float(value) and value >= 0 and value <= 1, do: value
749+ def decode_opacity(value) when is_integer(value) and value >= 0 and value <= 1, do: value
750+ def decode_opacity(_), do: {:error, "Unexpected type when decoding MarkConfig.opacity"}
751+
752+ def encode_opacity(value) when is_float(value), do: value
753+ def encode_opacity(value) when is_integer(value), do: value
754+ def encode_opacity(_), do: {:error, "Unexpected type when encoding MarkConfig.opacity"}
755+
756+ def decode_radius(value) when is_float(value) and value >= 0, do: value
757+ def decode_radius(value) when is_integer(value) and value >= 0, do: value
758+ def decode_radius(_), do: {:error, "Unexpected type when decoding MarkConfig.radius"}
759+
760+ def encode_radius(value) when is_float(value), do: value
761+ def encode_radius(value) when is_integer(value), do: value
762+ def encode_radius(_), do: {:error, "Unexpected type when encoding MarkConfig.radius"}
763+
700764 def decode_shape(value) when is_binary(value), do: value
701765 def decode_shape(_), do: {:error, "Unexpected type when decoding MarkConfig.shape"}
702766
703767 def encode_shape(value) when is_binary(value), do: value
704768 def encode_shape(_), do: {:error, "Unexpected type when encoding MarkConfig.shape"}
705769
770+ def decode_size(value) when is_float(value) and value >= 0, do: value
771+ def decode_size(value) when is_integer(value) and value >= 0, do: value
772+ def decode_size(_), do: {:error, "Unexpected type when decoding MarkConfig.size"}
773+
774+ def encode_size(value) when is_float(value), do: value
775+ def encode_size(value) when is_integer(value), do: value
776+ def encode_size(_), do: {:error, "Unexpected type when encoding MarkConfig.size"}
777+
706778 def decode_stroke(value) when is_binary(value), do: value
707779 def decode_stroke(_), do: {:error, "Unexpected type when decoding MarkConfig.stroke"}
708780
709781 def encode_stroke(value) when is_binary(value), do: value
710782 def encode_stroke(_), do: {:error, "Unexpected type when encoding MarkConfig.stroke"}
711783
784+ def decode_stroke_dash_offset(value) when is_float(value), do: value
785+ def decode_stroke_dash_offset(value) when is_integer(value), do: value
786+ def decode_stroke_dash_offset(_), do: {:error, "Unexpected type when decoding MarkConfig.stroke_dash_offset"}
787+
788+ def encode_stroke_dash_offset(value) when is_float(value), do: value
789+ def encode_stroke_dash_offset(value) when is_integer(value), do: value
790+ def encode_stroke_dash_offset(_), do: {:error, "Unexpected type when encoding MarkConfig.stroke_dash_offset"}
791+
792+ def decode_stroke_opacity(value) when is_float(value) and value >= 0 and value <= 1, do: value
793+ def decode_stroke_opacity(value) when is_integer(value) and value >= 0 and value <= 1, do: value
794+ def decode_stroke_opacity(_), do: {:error, "Unexpected type when decoding MarkConfig.stroke_opacity"}
795+
796+ def encode_stroke_opacity(value) when is_float(value), do: value
797+ def encode_stroke_opacity(value) when is_integer(value), do: value
798+ def encode_stroke_opacity(_), do: {:error, "Unexpected type when encoding MarkConfig.stroke_opacity"}
799+
800+ def decode_stroke_width(value) when is_float(value) and value >= 0, do: value
801+ def decode_stroke_width(value) when is_integer(value) and value >= 0, do: value
802+ def decode_stroke_width(_), do: {:error, "Unexpected type when decoding MarkConfig.stroke_width"}
803+
804+ def encode_stroke_width(value) when is_float(value), do: value
805+ def encode_stroke_width(value) when is_integer(value), do: value
806+ def encode_stroke_width(_), do: {:error, "Unexpected type when encoding MarkConfig.stroke_width"}
807+
808+ def decode_tension(value) when is_float(value) and value >= 0 and value <= 1, do: value
809+ def decode_tension(value) when is_integer(value) and value >= 0 and value <= 1, do: value
810+ def decode_tension(_), do: {:error, "Unexpected type when decoding MarkConfig.tension"}
811+
812+ def encode_tension(value) when is_float(value), do: value
813+ def encode_tension(value) when is_integer(value), do: value
814+ def encode_tension(_), do: {:error, "Unexpected type when encoding MarkConfig.tension"}
815+
712816 def decode_text(value) when is_binary(value), do: value
713817 def decode_text(_), do: {:error, "Unexpected type when decoding MarkConfig.text"}
714818
715819 def encode_text(value) when is_binary(value), do: value
716820 def encode_text(_), do: {:error, "Unexpected type when encoding MarkConfig.text"}
717821
822+ def decode_theta(value) when is_float(value), do: value
823+ def decode_theta(value) when is_integer(value), do: value
824+ def decode_theta(_), do: {:error, "Unexpected type when decoding MarkConfig.theta"}
825+
826+ def encode_theta(value) when is_float(value), do: value
827+ def encode_theta(value) when is_integer(value), do: value
828+ def encode_theta(_), do: {:error, "Unexpected type when encoding MarkConfig.theta"}
829+
718830 def from_map(m) do
719831 %MarkConfig{
720832 align: m["align"] && HorizontalAlign.decode(m["align"]),
721- angle: m["angle"],
833+ angle: m["angle"] && decode_angle(m["angle"]),
722834 baseline: m["baseline"] && VerticalAlign.decode(m["baseline"]),
723835 color: m["color"] && decode_color(m["color"]),
724836 cursor: m["cursor"] && Cursor.decode(m["cursor"]),
725- dx: m["dx"],
726- dy: m["dy"],
837+ dx: m["dx"] && decode_dx(m["dx"]),
838+ dy: m["dy"] && decode_dy(m["dy"]),
727839 fill: m["fill"] && decode_fill(m["fill"]),
728840 filled: m["filled"],
729- fill_opacity: m["fillOpacity"],
841+ fill_opacity: m["fillOpacity"] && decode_fill_opacity(m["fillOpacity"]),
730842 font: m["font"] && decode_font(m["font"]),
731- font_size: m["fontSize"],
843+ font_size: m["fontSize"] && decode_font_size(m["fontSize"]),
732844 font_style: m["fontStyle"] && FontStyle.decode(m["fontStyle"]),
733845 font_weight: decode_font_weight(m["fontWeight"]),
734846 href: m["href"] && decode_href(m["href"]),
735847 interpolate: m["interpolate"] && Interpolate.decode(m["interpolate"]),
736- limit: m["limit"],
737- opacity: m["opacity"],
848+ limit: m["limit"] && decode_limit(m["limit"]),
849+ opacity: m["opacity"] && decode_opacity(m["opacity"]),
738850 orient: m["orient"] && Orient.decode(m["orient"]),
739- radius: m["radius"],
851+ radius: m["radius"] && decode_radius(m["radius"]),
740852 shape: m["shape"] && decode_shape(m["shape"]),
741- size: m["size"],
853+ size: m["size"] && decode_size(m["size"]),
742854 stroke: m["stroke"] && decode_stroke(m["stroke"]),
743855 stroke_dash: m["strokeDash"],
744- stroke_dash_offset: m["strokeDashOffset"],
745- stroke_opacity: m["strokeOpacity"],
746- stroke_width: m["strokeWidth"],
747- tension: m["tension"],
856+ stroke_dash_offset: m["strokeDashOffset"] && decode_stroke_dash_offset(m["strokeDashOffset"]),
857+ stroke_opacity: m["strokeOpacity"] && decode_stroke_opacity(m["strokeOpacity"]),
858+ stroke_width: m["strokeWidth"] && decode_stroke_width(m["strokeWidth"]),
859+ tension: m["tension"] && decode_tension(m["tension"]),
748860 text: m["text"] && decode_text(m["text"]),
749- theta: m["theta"],
861+ theta: m["theta"] && decode_theta(m["theta"]),
750862 }
751863 end
752864
@@ -934,18 +1046,58 @@ defmodule AxisConfig do
9341046 title_y: float() | nil
9351047 }
9361048
1049+ def decode_band_position(value) when is_float(value), do: value
1050+ def decode_band_position(value) when is_integer(value), do: value
1051+ def decode_band_position(_), do: {:error, "Unexpected type when decoding AxisConfig.band_position"}
1052+
1053+ def encode_band_position(value) when is_float(value), do: value
1054+ def encode_band_position(value) when is_integer(value), do: value
1055+ def encode_band_position(_), do: {:error, "Unexpected type when encoding AxisConfig.band_position"}
1056+
9371057 def decode_domain_color(value) when is_binary(value), do: value
9381058 def decode_domain_color(_), do: {:error, "Unexpected type when decoding AxisConfig.domain_color"}
9391059
9401060 def encode_domain_color(value) when is_binary(value), do: value
9411061 def encode_domain_color(_), do: {:error, "Unexpected type when encoding AxisConfig.domain_color"}
9421062
1063+ def decode_domain_width(value) when is_float(value), do: value
1064+ def decode_domain_width(value) when is_integer(value), do: value
1065+ def decode_domain_width(_), do: {:error, "Unexpected type when decoding AxisConfig.domain_width"}
1066+
1067+ def encode_domain_width(value) when is_float(value), do: value
1068+ def encode_domain_width(value) when is_integer(value), do: value
1069+ def encode_domain_width(_), do: {:error, "Unexpected type when encoding AxisConfig.domain_width"}
1070+
9431071 def decode_grid_color(value) when is_binary(value), do: value
9441072 def decode_grid_color(_), do: {:error, "Unexpected type when decoding AxisConfig.grid_color"}
9451073
9461074 def encode_grid_color(value) when is_binary(value), do: value
9471075 def encode_grid_color(_), do: {:error, "Unexpected type when encoding AxisConfig.grid_color"}
9481076
1077+ def decode_grid_opacity(value) when is_float(value) and value >= 0 and value <= 1, do: value
1078+ def decode_grid_opacity(value) when is_integer(value) and value >= 0 and value <= 1, do: value
1079+ def decode_grid_opacity(_), do: {:error, "Unexpected type when decoding AxisConfig.grid_opacity"}
1080+
1081+ def encode_grid_opacity(value) when is_float(value), do: value
1082+ def encode_grid_opacity(value) when is_integer(value), do: value
1083+ def encode_grid_opacity(_), do: {:error, "Unexpected type when encoding AxisConfig.grid_opacity"}
1084+
1085+ def decode_grid_width(value) when is_float(value) and value >= 0, do: value
1086+ def decode_grid_width(value) when is_integer(value) and value >= 0, do: value
1087+ def decode_grid_width(_), do: {:error, "Unexpected type when decoding AxisConfig.grid_width"}
1088+
1089+ def encode_grid_width(value) when is_float(value), do: value
1090+ def encode_grid_width(value) when is_integer(value), do: value
1091+ def encode_grid_width(_), do: {:error, "Unexpected type when encoding AxisConfig.grid_width"}
1092+
1093+ def decode_label_angle(value) when is_float(value) and value >= -360 and value <= 360, do: value
1094+ def decode_label_angle(value) when is_integer(value) and value >= -360 and value <= 360, do: value
1095+ def decode_label_angle(_), do: {:error, "Unexpected type when decoding AxisConfig.label_angle"}
1096+
1097+ def encode_label_angle(value) when is_float(value), do: value
1098+ def encode_label_angle(value) when is_integer(value), do: value
1099+ def encode_label_angle(_), do: {:error, "Unexpected type when encoding AxisConfig.label_angle"}
1100+
9491101 def decode_label_color(value) when is_binary(value), do: value
9501102 def decode_label_color(_), do: {:error, "Unexpected type when decoding AxisConfig.label_color"}
9511103
@@ -958,6 +1110,22 @@ defmodule AxisConfig do
9581110 def encode_label_font(value) when is_binary(value), do: value
9591111 def encode_label_font(_), do: {:error, "Unexpected type when encoding AxisConfig.label_font"}
9601112
1113+ def decode_label_font_size(value) when is_float(value) and value >= 0, do: value
1114+ def decode_label_font_size(value) when is_integer(value) and value >= 0, do: value
1115+ def decode_label_font_size(_), do: {:error, "Unexpected type when decoding AxisConfig.label_font_size"}
1116+
1117+ def encode_label_font_size(value) when is_float(value), do: value
1118+ def encode_label_font_size(value) when is_integer(value), do: value
1119+ def encode_label_font_size(_), do: {:error, "Unexpected type when encoding AxisConfig.label_font_size"}
1120+
1121+ def decode_label_limit(value) when is_float(value), do: value
1122+ def decode_label_limit(value) when is_integer(value), do: value
1123+ def decode_label_limit(_), do: {:error, "Unexpected type when decoding AxisConfig.label_limit"}
1124+
1125+ def encode_label_limit(value) when is_float(value), do: value
1126+ def encode_label_limit(value) when is_integer(value), do: value
1127+ def encode_label_limit(_), do: {:error, "Unexpected type when encoding AxisConfig.label_limit"}
1128+
9611129 def decode_label_overlap(value) when is_boolean(value), do: value
9621130 def decode_label_overlap(value) when is_binary(value), do: LabelOverlapEnum.decode(value)
9631131 def decode_label_overlap(value) when is_nil(value), do: value
@@ -968,18 +1136,66 @@ defmodule AxisConfig do
9681136 def encode_label_overlap(value) when is_nil(value), do: value
9691137 def encode_label_overlap(_), do: {:error, "Unexpected type when encoding AxisConfig.label_overlap"}
9701138
1139+ def decode_label_padding(value) when is_float(value), do: value
1140+ def decode_label_padding(value) when is_integer(value), do: value
1141+ def decode_label_padding(_), do: {:error, "Unexpected type when decoding AxisConfig.label_padding"}
1142+
1143+ def encode_label_padding(value) when is_float(value), do: value
1144+ def encode_label_padding(value) when is_integer(value), do: value
1145+ def encode_label_padding(_), do: {:error, "Unexpected type when encoding AxisConfig.label_padding"}
1146+
1147+ def decode_max_extent(value) when is_float(value), do: value
1148+ def decode_max_extent(value) when is_integer(value), do: value
1149+ def decode_max_extent(_), do: {:error, "Unexpected type when decoding AxisConfig.max_extent"}
1150+
1151+ def encode_max_extent(value) when is_float(value), do: value
1152+ def encode_max_extent(value) when is_integer(value), do: value
1153+ def encode_max_extent(_), do: {:error, "Unexpected type when encoding AxisConfig.max_extent"}
1154+
1155+ def decode_min_extent(value) when is_float(value), do: value
1156+ def decode_min_extent(value) when is_integer(value), do: value
1157+ def decode_min_extent(_), do: {:error, "Unexpected type when decoding AxisConfig.min_extent"}
1158+
1159+ def encode_min_extent(value) when is_float(value), do: value
1160+ def encode_min_extent(value) when is_integer(value), do: value
1161+ def encode_min_extent(_), do: {:error, "Unexpected type when encoding AxisConfig.min_extent"}
1162+
9711163 def decode_tick_color(value) when is_binary(value), do: value
9721164 def decode_tick_color(_), do: {:error, "Unexpected type when decoding AxisConfig.tick_color"}
9731165
9741166 def encode_tick_color(value) when is_binary(value), do: value
9751167 def encode_tick_color(_), do: {:error, "Unexpected type when encoding AxisConfig.tick_color"}
9761168
1169+ def decode_tick_size(value) when is_float(value) and value >= 0, do: value
1170+ def decode_tick_size(value) when is_integer(value) and value >= 0, do: value
1171+ def decode_tick_size(_), do: {:error, "Unexpected type when decoding AxisConfig.tick_size"}
1172+
1173+ def encode_tick_size(value) when is_float(value), do: value
1174+ def encode_tick_size(value) when is_integer(value), do: value
1175+ def encode_tick_size(_), do: {:error, "Unexpected type when encoding AxisConfig.tick_size"}
1176+
1177+ def decode_tick_width(value) when is_float(value) and value >= 0, do: value
1178+ def decode_tick_width(value) when is_integer(value) and value >= 0, do: value
1179+ def decode_tick_width(_), do: {:error, "Unexpected type when decoding AxisConfig.tick_width"}
1180+
1181+ def encode_tick_width(value) when is_float(value), do: value
1182+ def encode_tick_width(value) when is_integer(value), do: value
1183+ def encode_tick_width(_), do: {:error, "Unexpected type when encoding AxisConfig.tick_width"}
1184+
9771185 def decode_title_align(value) when is_binary(value), do: value
9781186 def decode_title_align(_), do: {:error, "Unexpected type when decoding AxisConfig.title_align"}
9791187
9801188 def encode_title_align(value) when is_binary(value), do: value
9811189 def encode_title_align(_), do: {:error, "Unexpected type when encoding AxisConfig.title_align"}
9821190
1191+ def decode_title_angle(value) when is_float(value), do: value
1192+ def decode_title_angle(value) when is_integer(value), do: value
1193+ def decode_title_angle(_), do: {:error, "Unexpected type when decoding AxisConfig.title_angle"}
1194+
1195+ def encode_title_angle(value) when is_float(value), do: value
1196+ def encode_title_angle(value) when is_integer(value), do: value
1197+ def encode_title_angle(_), do: {:error, "Unexpected type when encoding AxisConfig.title_angle"}
1198+
9831199 def decode_title_baseline(value) when is_binary(value), do: value
9841200 def decode_title_baseline(_), do: {:error, "Unexpected type when decoding AxisConfig.title_baseline"}
9851201
@@ -998,47 +1214,95 @@ defmodule AxisConfig do
9981214 def encode_title_font(value) when is_binary(value), do: value
9991215 def encode_title_font(_), do: {:error, "Unexpected type when encoding AxisConfig.title_font"}
10001216
1217+ def decode_title_font_size(value) when is_float(value) and value >= 0, do: value
1218+ def decode_title_font_size(value) when is_integer(value) and value >= 0, do: value
1219+ def decode_title_font_size(_), do: {:error, "Unexpected type when decoding AxisConfig.title_font_size"}
1220+
1221+ def encode_title_font_size(value) when is_float(value), do: value
1222+ def encode_title_font_size(value) when is_integer(value), do: value
1223+ def encode_title_font_size(_), do: {:error, "Unexpected type when encoding AxisConfig.title_font_size"}
1224+
1225+ def decode_title_limit(value) when is_float(value), do: value
1226+ def decode_title_limit(value) when is_integer(value), do: value
1227+ def decode_title_limit(_), do: {:error, "Unexpected type when decoding AxisConfig.title_limit"}
1228+
1229+ def encode_title_limit(value) when is_float(value), do: value
1230+ def encode_title_limit(value) when is_integer(value), do: value
1231+ def encode_title_limit(_), do: {:error, "Unexpected type when encoding AxisConfig.title_limit"}
1232+
1233+ def decode_title_max_length(value) when is_float(value), do: value
1234+ def decode_title_max_length(value) when is_integer(value), do: value
1235+ def decode_title_max_length(_), do: {:error, "Unexpected type when decoding AxisConfig.title_max_length"}
1236+
1237+ def encode_title_max_length(value) when is_float(value), do: value
1238+ def encode_title_max_length(value) when is_integer(value), do: value
1239+ def encode_title_max_length(_), do: {:error, "Unexpected type when encoding AxisConfig.title_max_length"}
1240+
1241+ def decode_title_padding(value) when is_float(value), do: value
1242+ def decode_title_padding(value) when is_integer(value), do: value
1243+ def decode_title_padding(_), do: {:error, "Unexpected type when decoding AxisConfig.title_padding"}
1244+
1245+ def encode_title_padding(value) when is_float(value), do: value
1246+ def encode_title_padding(value) when is_integer(value), do: value
1247+ def encode_title_padding(_), do: {:error, "Unexpected type when encoding AxisConfig.title_padding"}
1248+
1249+ def decode_title_x(value) when is_float(value), do: value
1250+ def decode_title_x(value) when is_integer(value), do: value
1251+ def decode_title_x(_), do: {:error, "Unexpected type when decoding AxisConfig.title_x"}
1252+
1253+ def encode_title_x(value) when is_float(value), do: value
1254+ def encode_title_x(value) when is_integer(value), do: value
1255+ def encode_title_x(_), do: {:error, "Unexpected type when encoding AxisConfig.title_x"}
1256+
1257+ def decode_title_y(value) when is_float(value), do: value
1258+ def decode_title_y(value) when is_integer(value), do: value
1259+ def decode_title_y(_), do: {:error, "Unexpected type when decoding AxisConfig.title_y"}
1260+
1261+ def encode_title_y(value) when is_float(value), do: value
1262+ def encode_title_y(value) when is_integer(value), do: value
1263+ def encode_title_y(_), do: {:error, "Unexpected type when encoding AxisConfig.title_y"}
1264+
10011265 def from_map(m) do
10021266 %AxisConfig{
1003- band_position: m["bandPosition"],
1267+ band_position: m["bandPosition"] && decode_band_position(m["bandPosition"]),
10041268 domain: m["domain"],
10051269 domain_color: m["domainColor"] && decode_domain_color(m["domainColor"]),
1006- domain_width: m["domainWidth"],
1270+ domain_width: m["domainWidth"] && decode_domain_width(m["domainWidth"]),
10071271 grid: m["grid"],
10081272 grid_color: m["gridColor"] && decode_grid_color(m["gridColor"]),
10091273 grid_dash: m["gridDash"],
1010- grid_opacity: m["gridOpacity"],
1011- grid_width: m["gridWidth"],
1012- label_angle: m["labelAngle"],
1274+ grid_opacity: m["gridOpacity"] && decode_grid_opacity(m["gridOpacity"]),
1275+ grid_width: m["gridWidth"] && decode_grid_width(m["gridWidth"]),
1276+ label_angle: m["labelAngle"] && decode_label_angle(m["labelAngle"]),
10131277 label_bound: m["labelBound"],
10141278 label_color: m["labelColor"] && decode_label_color(m["labelColor"]),
10151279 label_flush: m["labelFlush"],
10161280 label_font: m["labelFont"] && decode_label_font(m["labelFont"]),
1017- label_font_size: m["labelFontSize"],
1018- label_limit: m["labelLimit"],
1281+ label_font_size: m["labelFontSize"] && decode_label_font_size(m["labelFontSize"]),
1282+ label_limit: m["labelLimit"] && decode_label_limit(m["labelLimit"]),
10191283 label_overlap: decode_label_overlap(m["labelOverlap"]),
1020- label_padding: m["labelPadding"],
1284+ label_padding: m["labelPadding"] && decode_label_padding(m["labelPadding"]),
10211285 labels: m["labels"],
1022- max_extent: m["maxExtent"],
1023- min_extent: m["minExtent"],
1286+ max_extent: m["maxExtent"] && decode_max_extent(m["maxExtent"]),
1287+ min_extent: m["minExtent"] && decode_min_extent(m["minExtent"]),
10241288 short_time_labels: m["shortTimeLabels"],
10251289 tick_color: m["tickColor"] && decode_tick_color(m["tickColor"]),
10261290 tick_round: m["tickRound"],
10271291 ticks: m["ticks"],
1028- tick_size: m["tickSize"],
1029- tick_width: m["tickWidth"],
1292+ tick_size: m["tickSize"] && decode_tick_size(m["tickSize"]),
1293+ tick_width: m["tickWidth"] && decode_tick_width(m["tickWidth"]),
10301294 title_align: m["titleAlign"] && decode_title_align(m["titleAlign"]),
1031- title_angle: m["titleAngle"],
1295+ title_angle: m["titleAngle"] && decode_title_angle(m["titleAngle"]),
10321296 title_baseline: m["titleBaseline"] && decode_title_baseline(m["titleBaseline"]),
10331297 title_color: m["titleColor"] && decode_title_color(m["titleColor"]),
10341298 title_font: m["titleFont"] && decode_title_font(m["titleFont"]),
1035- title_font_size: m["titleFontSize"],
1299+ title_font_size: m["titleFontSize"] && decode_title_font_size(m["titleFontSize"]),
10361300 title_font_weight: m["titleFontWeight"],
1037- title_limit: m["titleLimit"],
1038- title_max_length: m["titleMaxLength"],
1039- title_padding: m["titlePadding"],
1040- title_x: m["titleX"],
1041- title_y: m["titleY"],
1301+ title_limit: m["titleLimit"] && decode_title_limit(m["titleLimit"]),
1302+ title_max_length: m["titleMaxLength"] && decode_title_max_length(m["titleMaxLength"]),
1303+ title_padding: m["titlePadding"] && decode_title_padding(m["titlePadding"]),
1304+ title_x: m["titleX"] && decode_title_x(m["titleX"]),
1305+ title_y: m["titleY"] && decode_title_y(m["titleY"]),
10421306 }
10431307 end
10441308
@@ -1197,18 +1461,58 @@ defmodule VGAxisConfig do
11971461 title_y: float() | nil
11981462 }
11991463
1464+ def decode_band_position(value) when is_float(value), do: value
1465+ def decode_band_position(value) when is_integer(value), do: value
1466+ def decode_band_position(_), do: {:error, "Unexpected type when decoding VGAxisConfig.band_position"}
1467+
1468+ def encode_band_position(value) when is_float(value), do: value
1469+ def encode_band_position(value) when is_integer(value), do: value
1470+ def encode_band_position(_), do: {:error, "Unexpected type when encoding VGAxisConfig.band_position"}
1471+
12001472 def decode_domain_color(value) when is_binary(value), do: value
12011473 def decode_domain_color(_), do: {:error, "Unexpected type when decoding VGAxisConfig.domain_color"}
12021474
12031475 def encode_domain_color(value) when is_binary(value), do: value
12041476 def encode_domain_color(_), do: {:error, "Unexpected type when encoding VGAxisConfig.domain_color"}
12051477
1478+ def decode_domain_width(value) when is_float(value), do: value
1479+ def decode_domain_width(value) when is_integer(value), do: value
1480+ def decode_domain_width(_), do: {:error, "Unexpected type when decoding VGAxisConfig.domain_width"}
1481+
1482+ def encode_domain_width(value) when is_float(value), do: value
1483+ def encode_domain_width(value) when is_integer(value), do: value
1484+ def encode_domain_width(_), do: {:error, "Unexpected type when encoding VGAxisConfig.domain_width"}
1485+
12061486 def decode_grid_color(value) when is_binary(value), do: value
12071487 def decode_grid_color(_), do: {:error, "Unexpected type when decoding VGAxisConfig.grid_color"}
12081488
12091489 def encode_grid_color(value) when is_binary(value), do: value
12101490 def encode_grid_color(_), do: {:error, "Unexpected type when encoding VGAxisConfig.grid_color"}
12111491
1492+ def decode_grid_opacity(value) when is_float(value) and value >= 0 and value <= 1, do: value
1493+ def decode_grid_opacity(value) when is_integer(value) and value >= 0 and value <= 1, do: value
1494+ def decode_grid_opacity(_), do: {:error, "Unexpected type when decoding VGAxisConfig.grid_opacity"}
1495+
1496+ def encode_grid_opacity(value) when is_float(value), do: value
1497+ def encode_grid_opacity(value) when is_integer(value), do: value
1498+ def encode_grid_opacity(_), do: {:error, "Unexpected type when encoding VGAxisConfig.grid_opacity"}
1499+
1500+ def decode_grid_width(value) when is_float(value) and value >= 0, do: value
1501+ def decode_grid_width(value) when is_integer(value) and value >= 0, do: value
1502+ def decode_grid_width(_), do: {:error, "Unexpected type when decoding VGAxisConfig.grid_width"}
1503+
1504+ def encode_grid_width(value) when is_float(value), do: value
1505+ def encode_grid_width(value) when is_integer(value), do: value
1506+ def encode_grid_width(_), do: {:error, "Unexpected type when encoding VGAxisConfig.grid_width"}
1507+
1508+ def decode_label_angle(value) when is_float(value) and value >= -360 and value <= 360, do: value
1509+ def decode_label_angle(value) when is_integer(value) and value >= -360 and value <= 360, do: value
1510+ def decode_label_angle(_), do: {:error, "Unexpected type when decoding VGAxisConfig.label_angle"}
1511+
1512+ def encode_label_angle(value) when is_float(value), do: value
1513+ def encode_label_angle(value) when is_integer(value), do: value
1514+ def encode_label_angle(_), do: {:error, "Unexpected type when encoding VGAxisConfig.label_angle"}
1515+
12121516 def decode_label_color(value) when is_binary(value), do: value
12131517 def decode_label_color(_), do: {:error, "Unexpected type when decoding VGAxisConfig.label_color"}
12141518
@@ -1221,6 +1525,22 @@ defmodule VGAxisConfig do
12211525 def encode_label_font(value) when is_binary(value), do: value
12221526 def encode_label_font(_), do: {:error, "Unexpected type when encoding VGAxisConfig.label_font"}
12231527
1528+ def decode_label_font_size(value) when is_float(value) and value >= 0, do: value
1529+ def decode_label_font_size(value) when is_integer(value) and value >= 0, do: value
1530+ def decode_label_font_size(_), do: {:error, "Unexpected type when decoding VGAxisConfig.label_font_size"}
1531+
1532+ def encode_label_font_size(value) when is_float(value), do: value
1533+ def encode_label_font_size(value) when is_integer(value), do: value
1534+ def encode_label_font_size(_), do: {:error, "Unexpected type when encoding VGAxisConfig.label_font_size"}
1535+
1536+ def decode_label_limit(value) when is_float(value), do: value
1537+ def decode_label_limit(value) when is_integer(value), do: value
1538+ def decode_label_limit(_), do: {:error, "Unexpected type when decoding VGAxisConfig.label_limit"}
1539+
1540+ def encode_label_limit(value) when is_float(value), do: value
1541+ def encode_label_limit(value) when is_integer(value), do: value
1542+ def encode_label_limit(_), do: {:error, "Unexpected type when encoding VGAxisConfig.label_limit"}
1543+
12241544 def decode_label_overlap(value) when is_boolean(value), do: value
12251545 def decode_label_overlap(value) when is_binary(value), do: LabelOverlapEnum.decode(value)
12261546 def decode_label_overlap(value) when is_nil(value), do: value
@@ -1231,18 +1551,66 @@ defmodule VGAxisConfig do
12311551 def encode_label_overlap(value) when is_nil(value), do: value
12321552 def encode_label_overlap(_), do: {:error, "Unexpected type when encoding VGAxisConfig.label_overlap"}
12331553
1554+ def decode_label_padding(value) when is_float(value), do: value
1555+ def decode_label_padding(value) when is_integer(value), do: value
1556+ def decode_label_padding(_), do: {:error, "Unexpected type when decoding VGAxisConfig.label_padding"}
1557+
1558+ def encode_label_padding(value) when is_float(value), do: value
1559+ def encode_label_padding(value) when is_integer(value), do: value
1560+ def encode_label_padding(_), do: {:error, "Unexpected type when encoding VGAxisConfig.label_padding"}
1561+
1562+ def decode_max_extent(value) when is_float(value), do: value
1563+ def decode_max_extent(value) when is_integer(value), do: value
1564+ def decode_max_extent(_), do: {:error, "Unexpected type when decoding VGAxisConfig.max_extent"}
1565+
1566+ def encode_max_extent(value) when is_float(value), do: value
1567+ def encode_max_extent(value) when is_integer(value), do: value
1568+ def encode_max_extent(_), do: {:error, "Unexpected type when encoding VGAxisConfig.max_extent"}
1569+
1570+ def decode_min_extent(value) when is_float(value), do: value
1571+ def decode_min_extent(value) when is_integer(value), do: value
1572+ def decode_min_extent(_), do: {:error, "Unexpected type when decoding VGAxisConfig.min_extent"}
1573+
1574+ def encode_min_extent(value) when is_float(value), do: value
1575+ def encode_min_extent(value) when is_integer(value), do: value
1576+ def encode_min_extent(_), do: {:error, "Unexpected type when encoding VGAxisConfig.min_extent"}
1577+
12341578 def decode_tick_color(value) when is_binary(value), do: value
12351579 def decode_tick_color(_), do: {:error, "Unexpected type when decoding VGAxisConfig.tick_color"}
12361580
12371581 def encode_tick_color(value) when is_binary(value), do: value
12381582 def encode_tick_color(_), do: {:error, "Unexpected type when encoding VGAxisConfig.tick_color"}
12391583
1584+ def decode_tick_size(value) when is_float(value) and value >= 0, do: value
1585+ def decode_tick_size(value) when is_integer(value) and value >= 0, do: value
1586+ def decode_tick_size(_), do: {:error, "Unexpected type when decoding VGAxisConfig.tick_size"}
1587+
1588+ def encode_tick_size(value) when is_float(value), do: value
1589+ def encode_tick_size(value) when is_integer(value), do: value
1590+ def encode_tick_size(_), do: {:error, "Unexpected type when encoding VGAxisConfig.tick_size"}
1591+
1592+ def decode_tick_width(value) when is_float(value) and value >= 0, do: value
1593+ def decode_tick_width(value) when is_integer(value) and value >= 0, do: value
1594+ def decode_tick_width(_), do: {:error, "Unexpected type when decoding VGAxisConfig.tick_width"}
1595+
1596+ def encode_tick_width(value) when is_float(value), do: value
1597+ def encode_tick_width(value) when is_integer(value), do: value
1598+ def encode_tick_width(_), do: {:error, "Unexpected type when encoding VGAxisConfig.tick_width"}
1599+
12401600 def decode_title_align(value) when is_binary(value), do: value
12411601 def decode_title_align(_), do: {:error, "Unexpected type when decoding VGAxisConfig.title_align"}
12421602
12431603 def encode_title_align(value) when is_binary(value), do: value
12441604 def encode_title_align(_), do: {:error, "Unexpected type when encoding VGAxisConfig.title_align"}
12451605
1606+ def decode_title_angle(value) when is_float(value), do: value
1607+ def decode_title_angle(value) when is_integer(value), do: value
1608+ def decode_title_angle(_), do: {:error, "Unexpected type when decoding VGAxisConfig.title_angle"}
1609+
1610+ def encode_title_angle(value) when is_float(value), do: value
1611+ def encode_title_angle(value) when is_integer(value), do: value
1612+ def encode_title_angle(_), do: {:error, "Unexpected type when encoding VGAxisConfig.title_angle"}
1613+
12461614 def decode_title_baseline(value) when is_binary(value), do: value
12471615 def decode_title_baseline(_), do: {:error, "Unexpected type when decoding VGAxisConfig.title_baseline"}
12481616
@@ -1261,46 +1629,94 @@ defmodule VGAxisConfig do
12611629 def encode_title_font(value) when is_binary(value), do: value
12621630 def encode_title_font(_), do: {:error, "Unexpected type when encoding VGAxisConfig.title_font"}
12631631
1632+ def decode_title_font_size(value) when is_float(value) and value >= 0, do: value
1633+ def decode_title_font_size(value) when is_integer(value) and value >= 0, do: value
1634+ def decode_title_font_size(_), do: {:error, "Unexpected type when decoding VGAxisConfig.title_font_size"}
1635+
1636+ def encode_title_font_size(value) when is_float(value), do: value
1637+ def encode_title_font_size(value) when is_integer(value), do: value
1638+ def encode_title_font_size(_), do: {:error, "Unexpected type when encoding VGAxisConfig.title_font_size"}
1639+
1640+ def decode_title_limit(value) when is_float(value), do: value
1641+ def decode_title_limit(value) when is_integer(value), do: value
1642+ def decode_title_limit(_), do: {:error, "Unexpected type when decoding VGAxisConfig.title_limit"}
1643+
1644+ def encode_title_limit(value) when is_float(value), do: value
1645+ def encode_title_limit(value) when is_integer(value), do: value
1646+ def encode_title_limit(_), do: {:error, "Unexpected type when encoding VGAxisConfig.title_limit"}
1647+
1648+ def decode_title_max_length(value) when is_float(value), do: value
1649+ def decode_title_max_length(value) when is_integer(value), do: value
1650+ def decode_title_max_length(_), do: {:error, "Unexpected type when decoding VGAxisConfig.title_max_length"}
1651+
1652+ def encode_title_max_length(value) when is_float(value), do: value
1653+ def encode_title_max_length(value) when is_integer(value), do: value
1654+ def encode_title_max_length(_), do: {:error, "Unexpected type when encoding VGAxisConfig.title_max_length"}
1655+
1656+ def decode_title_padding(value) when is_float(value), do: value
1657+ def decode_title_padding(value) when is_integer(value), do: value
1658+ def decode_title_padding(_), do: {:error, "Unexpected type when decoding VGAxisConfig.title_padding"}
1659+
1660+ def encode_title_padding(value) when is_float(value), do: value
1661+ def encode_title_padding(value) when is_integer(value), do: value
1662+ def encode_title_padding(_), do: {:error, "Unexpected type when encoding VGAxisConfig.title_padding"}
1663+
1664+ def decode_title_x(value) when is_float(value), do: value
1665+ def decode_title_x(value) when is_integer(value), do: value
1666+ def decode_title_x(_), do: {:error, "Unexpected type when decoding VGAxisConfig.title_x"}
1667+
1668+ def encode_title_x(value) when is_float(value), do: value
1669+ def encode_title_x(value) when is_integer(value), do: value
1670+ def encode_title_x(_), do: {:error, "Unexpected type when encoding VGAxisConfig.title_x"}
1671+
1672+ def decode_title_y(value) when is_float(value), do: value
1673+ def decode_title_y(value) when is_integer(value), do: value
1674+ def decode_title_y(_), do: {:error, "Unexpected type when decoding VGAxisConfig.title_y"}
1675+
1676+ def encode_title_y(value) when is_float(value), do: value
1677+ def encode_title_y(value) when is_integer(value), do: value
1678+ def encode_title_y(_), do: {:error, "Unexpected type when encoding VGAxisConfig.title_y"}
1679+
12641680 def from_map(m) do
12651681 %VGAxisConfig{
1266- band_position: m["bandPosition"],
1682+ band_position: m["bandPosition"] && decode_band_position(m["bandPosition"]),
12671683 domain: m["domain"],
12681684 domain_color: m["domainColor"] && decode_domain_color(m["domainColor"]),
1269- domain_width: m["domainWidth"],
1685+ domain_width: m["domainWidth"] && decode_domain_width(m["domainWidth"]),
12701686 grid: m["grid"],
12711687 grid_color: m["gridColor"] && decode_grid_color(m["gridColor"]),
12721688 grid_dash: m["gridDash"],
1273- grid_opacity: m["gridOpacity"],
1274- grid_width: m["gridWidth"],
1275- label_angle: m["labelAngle"],
1689+ grid_opacity: m["gridOpacity"] && decode_grid_opacity(m["gridOpacity"]),
1690+ grid_width: m["gridWidth"] && decode_grid_width(m["gridWidth"]),
1691+ label_angle: m["labelAngle"] && decode_label_angle(m["labelAngle"]),
12761692 label_bound: m["labelBound"],
12771693 label_color: m["labelColor"] && decode_label_color(m["labelColor"]),
12781694 label_flush: m["labelFlush"],
12791695 label_font: m["labelFont"] && decode_label_font(m["labelFont"]),
1280- label_font_size: m["labelFontSize"],
1281- label_limit: m["labelLimit"],
1696+ label_font_size: m["labelFontSize"] && decode_label_font_size(m["labelFontSize"]),
1697+ label_limit: m["labelLimit"] && decode_label_limit(m["labelLimit"]),
12821698 label_overlap: decode_label_overlap(m["labelOverlap"]),
1283- label_padding: m["labelPadding"],
1699+ label_padding: m["labelPadding"] && decode_label_padding(m["labelPadding"]),
12841700 labels: m["labels"],
1285- max_extent: m["maxExtent"],
1286- min_extent: m["minExtent"],
1701+ max_extent: m["maxExtent"] && decode_max_extent(m["maxExtent"]),
1702+ min_extent: m["minExtent"] && decode_min_extent(m["minExtent"]),
12871703 tick_color: m["tickColor"] && decode_tick_color(m["tickColor"]),
12881704 tick_round: m["tickRound"],
12891705 ticks: m["ticks"],
1290- tick_size: m["tickSize"],
1291- tick_width: m["tickWidth"],
1706+ tick_size: m["tickSize"] && decode_tick_size(m["tickSize"]),
1707+ tick_width: m["tickWidth"] && decode_tick_width(m["tickWidth"]),
12921708 title_align: m["titleAlign"] && decode_title_align(m["titleAlign"]),
1293- title_angle: m["titleAngle"],
1709+ title_angle: m["titleAngle"] && decode_title_angle(m["titleAngle"]),
12941710 title_baseline: m["titleBaseline"] && decode_title_baseline(m["titleBaseline"]),
12951711 title_color: m["titleColor"] && decode_title_color(m["titleColor"]),
12961712 title_font: m["titleFont"] && decode_title_font(m["titleFont"]),
1297- title_font_size: m["titleFontSize"],
1713+ title_font_size: m["titleFontSize"] && decode_title_font_size(m["titleFontSize"]),
12981714 title_font_weight: m["titleFontWeight"],
1299- title_limit: m["titleLimit"],
1300- title_max_length: m["titleMaxLength"],
1301- title_padding: m["titlePadding"],
1302- title_x: m["titleX"],
1303- title_y: m["titleY"],
1715+ title_limit: m["titleLimit"] && decode_title_limit(m["titleLimit"]),
1716+ title_max_length: m["titleMaxLength"] && decode_title_max_length(m["titleMaxLength"]),
1717+ title_padding: m["titlePadding"] && decode_title_padding(m["titlePadding"]),
1718+ title_x: m["titleX"] && decode_title_x(m["titleX"]),
1719+ title_y: m["titleY"] && decode_title_y(m["titleY"]),
13041720 }
13051721 end
13061722
@@ -1436,27 +1852,91 @@ defmodule BarConfig do
14361852 theta: float() | nil
14371853 }
14381854
1855+ def decode_angle(value) when is_float(value) and value >= 0 and value <= 360, do: value
1856+ def decode_angle(value) when is_integer(value) and value >= 0 and value <= 360, do: value
1857+ def decode_angle(_), do: {:error, "Unexpected type when decoding BarConfig.angle"}
1858+
1859+ def encode_angle(value) when is_float(value), do: value
1860+ def encode_angle(value) when is_integer(value), do: value
1861+ def encode_angle(_), do: {:error, "Unexpected type when encoding BarConfig.angle"}
1862+
1863+ def decode_bin_spacing(value) when is_float(value) and value >= 0, do: value
1864+ def decode_bin_spacing(value) when is_integer(value) and value >= 0, do: value
1865+ def decode_bin_spacing(_), do: {:error, "Unexpected type when decoding BarConfig.bin_spacing"}
1866+
1867+ def encode_bin_spacing(value) when is_float(value), do: value
1868+ def encode_bin_spacing(value) when is_integer(value), do: value
1869+ def encode_bin_spacing(_), do: {:error, "Unexpected type when encoding BarConfig.bin_spacing"}
1870+
14391871 def decode_color(value) when is_binary(value), do: value
14401872 def decode_color(_), do: {:error, "Unexpected type when decoding BarConfig.color"}
14411873
14421874 def encode_color(value) when is_binary(value), do: value
14431875 def encode_color(_), do: {:error, "Unexpected type when encoding BarConfig.color"}
14441876
1877+ def decode_continuous_band_size(value) when is_float(value) and value >= 0, do: value
1878+ def decode_continuous_band_size(value) when is_integer(value) and value >= 0, do: value
1879+ def decode_continuous_band_size(_), do: {:error, "Unexpected type when decoding BarConfig.continuous_band_size"}
1880+
1881+ def encode_continuous_band_size(value) when is_float(value), do: value
1882+ def encode_continuous_band_size(value) when is_integer(value), do: value
1883+ def encode_continuous_band_size(_), do: {:error, "Unexpected type when encoding BarConfig.continuous_band_size"}
1884+
1885+ def decode_discrete_band_size(value) when is_float(value) and value >= 0, do: value
1886+ def decode_discrete_band_size(value) when is_integer(value) and value >= 0, do: value
1887+ def decode_discrete_band_size(_), do: {:error, "Unexpected type when decoding BarConfig.discrete_band_size"}
1888+
1889+ def encode_discrete_band_size(value) when is_float(value), do: value
1890+ def encode_discrete_band_size(value) when is_integer(value), do: value
1891+ def encode_discrete_band_size(_), do: {:error, "Unexpected type when encoding BarConfig.discrete_band_size"}
1892+
1893+ def decode_dx(value) when is_float(value), do: value
1894+ def decode_dx(value) when is_integer(value), do: value
1895+ def decode_dx(_), do: {:error, "Unexpected type when decoding BarConfig.dx"}
1896+
1897+ def encode_dx(value) when is_float(value), do: value
1898+ def encode_dx(value) when is_integer(value), do: value
1899+ def encode_dx(_), do: {:error, "Unexpected type when encoding BarConfig.dx"}
1900+
1901+ def decode_dy(value) when is_float(value), do: value
1902+ def decode_dy(value) when is_integer(value), do: value
1903+ def decode_dy(_), do: {:error, "Unexpected type when decoding BarConfig.dy"}
1904+
1905+ def encode_dy(value) when is_float(value), do: value
1906+ def encode_dy(value) when is_integer(value), do: value
1907+ def encode_dy(_), do: {:error, "Unexpected type when encoding BarConfig.dy"}
1908+
14451909 def decode_fill(value) when is_binary(value), do: value
14461910 def decode_fill(_), do: {:error, "Unexpected type when decoding BarConfig.fill"}
14471911
14481912 def encode_fill(value) when is_binary(value), do: value
14491913 def encode_fill(_), do: {:error, "Unexpected type when encoding BarConfig.fill"}
14501914
1915+ def decode_fill_opacity(value) when is_float(value) and value >= 0 and value <= 1, do: value
1916+ def decode_fill_opacity(value) when is_integer(value) and value >= 0 and value <= 1, do: value
1917+ def decode_fill_opacity(_), do: {:error, "Unexpected type when decoding BarConfig.fill_opacity"}
1918+
1919+ def encode_fill_opacity(value) when is_float(value), do: value
1920+ def encode_fill_opacity(value) when is_integer(value), do: value
1921+ def encode_fill_opacity(_), do: {:error, "Unexpected type when encoding BarConfig.fill_opacity"}
1922+
14511923 def decode_font(value) when is_binary(value), do: value
14521924 def decode_font(_), do: {:error, "Unexpected type when decoding BarConfig.font"}
14531925
14541926 def encode_font(value) when is_binary(value), do: value
14551927 def encode_font(_), do: {:error, "Unexpected type when encoding BarConfig.font"}
14561928
1929+ def decode_font_size(value) when is_float(value) and value >= 0, do: value
1930+ def decode_font_size(value) when is_integer(value) and value >= 0, do: value
1931+ def decode_font_size(_), do: {:error, "Unexpected type when decoding BarConfig.font_size"}
1932+
1933+ def encode_font_size(value) when is_float(value), do: value
1934+ def encode_font_size(value) when is_integer(value), do: value
1935+ def encode_font_size(_), do: {:error, "Unexpected type when encoding BarConfig.font_size"}
1936+
14571937 def decode_font_weight(value) when is_binary(value), do: FontWeight.decode(value)
1458- def decode_font_weight(value) when is_float(value), do: value
1459- def decode_font_weight(value) when is_integer(value), do: value
1938+ def decode_font_weight(value) when is_float(value) and value >= 100 and value <= 900, do: value
1939+ def decode_font_weight(value) when is_integer(value) and value >= 100 and value <= 900, do: value
14601940 def decode_font_weight(value) when is_nil(value), do: value
14611941 def decode_font_weight(_), do: {:error, "Unexpected type when decoding BarConfig.font_weight"}
14621942
@@ -1472,59 +1952,131 @@ defmodule BarConfig do
14721952 def encode_href(value) when is_binary(value), do: value
14731953 def encode_href(_), do: {:error, "Unexpected type when encoding BarConfig.href"}
14741954
1955+ def decode_limit(value) when is_float(value), do: value
1956+ def decode_limit(value) when is_integer(value), do: value
1957+ def decode_limit(_), do: {:error, "Unexpected type when decoding BarConfig.limit"}
1958+
1959+ def encode_limit(value) when is_float(value), do: value
1960+ def encode_limit(value) when is_integer(value), do: value
1961+ def encode_limit(_), do: {:error, "Unexpected type when encoding BarConfig.limit"}
1962+
1963+ def decode_opacity(value) when is_float(value) and value >= 0 and value <= 1, do: value
1964+ def decode_opacity(value) when is_integer(value) and value >= 0 and value <= 1, do: value
1965+ def decode_opacity(_), do: {:error, "Unexpected type when decoding BarConfig.opacity"}
1966+
1967+ def encode_opacity(value) when is_float(value), do: value
1968+ def encode_opacity(value) when is_integer(value), do: value
1969+ def encode_opacity(_), do: {:error, "Unexpected type when encoding BarConfig.opacity"}
1970+
1971+ def decode_radius(value) when is_float(value) and value >= 0, do: value
1972+ def decode_radius(value) when is_integer(value) and value >= 0, do: value
1973+ def decode_radius(_), do: {:error, "Unexpected type when decoding BarConfig.radius"}
1974+
1975+ def encode_radius(value) when is_float(value), do: value
1976+ def encode_radius(value) when is_integer(value), do: value
1977+ def encode_radius(_), do: {:error, "Unexpected type when encoding BarConfig.radius"}
1978+
14751979 def decode_shape(value) when is_binary(value), do: value
14761980 def decode_shape(_), do: {:error, "Unexpected type when decoding BarConfig.shape"}
14771981
14781982 def encode_shape(value) when is_binary(value), do: value
14791983 def encode_shape(_), do: {:error, "Unexpected type when encoding BarConfig.shape"}
14801984
1985+ def decode_size(value) when is_float(value) and value >= 0, do: value
1986+ def decode_size(value) when is_integer(value) and value >= 0, do: value
1987+ def decode_size(_), do: {:error, "Unexpected type when decoding BarConfig.size"}
1988+
1989+ def encode_size(value) when is_float(value), do: value
1990+ def encode_size(value) when is_integer(value), do: value
1991+ def encode_size(_), do: {:error, "Unexpected type when encoding BarConfig.size"}
1992+
14811993 def decode_stroke(value) when is_binary(value), do: value
14821994 def decode_stroke(_), do: {:error, "Unexpected type when decoding BarConfig.stroke"}
14831995
14841996 def encode_stroke(value) when is_binary(value), do: value
14851997 def encode_stroke(_), do: {:error, "Unexpected type when encoding BarConfig.stroke"}
14861998
1999+ def decode_stroke_dash_offset(value) when is_float(value), do: value
2000+ def decode_stroke_dash_offset(value) when is_integer(value), do: value
2001+ def decode_stroke_dash_offset(_), do: {:error, "Unexpected type when decoding BarConfig.stroke_dash_offset"}
2002+
2003+ def encode_stroke_dash_offset(value) when is_float(value), do: value
2004+ def encode_stroke_dash_offset(value) when is_integer(value), do: value
2005+ def encode_stroke_dash_offset(_), do: {:error, "Unexpected type when encoding BarConfig.stroke_dash_offset"}
2006+
2007+ def decode_stroke_opacity(value) when is_float(value) and value >= 0 and value <= 1, do: value
2008+ def decode_stroke_opacity(value) when is_integer(value) and value >= 0 and value <= 1, do: value
2009+ def decode_stroke_opacity(_), do: {:error, "Unexpected type when decoding BarConfig.stroke_opacity"}
2010+
2011+ def encode_stroke_opacity(value) when is_float(value), do: value
2012+ def encode_stroke_opacity(value) when is_integer(value), do: value
2013+ def encode_stroke_opacity(_), do: {:error, "Unexpected type when encoding BarConfig.stroke_opacity"}
2014+
2015+ def decode_stroke_width(value) when is_float(value) and value >= 0, do: value
2016+ def decode_stroke_width(value) when is_integer(value) and value >= 0, do: value
2017+ def decode_stroke_width(_), do: {:error, "Unexpected type when decoding BarConfig.stroke_width"}
2018+
2019+ def encode_stroke_width(value) when is_float(value), do: value
2020+ def encode_stroke_width(value) when is_integer(value), do: value
2021+ def encode_stroke_width(_), do: {:error, "Unexpected type when encoding BarConfig.stroke_width"}
2022+
2023+ def decode_tension(value) when is_float(value) and value >= 0 and value <= 1, do: value
2024+ def decode_tension(value) when is_integer(value) and value >= 0 and value <= 1, do: value
2025+ def decode_tension(_), do: {:error, "Unexpected type when decoding BarConfig.tension"}
2026+
2027+ def encode_tension(value) when is_float(value), do: value
2028+ def encode_tension(value) when is_integer(value), do: value
2029+ def encode_tension(_), do: {:error, "Unexpected type when encoding BarConfig.tension"}
2030+
14872031 def decode_text(value) when is_binary(value), do: value
14882032 def decode_text(_), do: {:error, "Unexpected type when decoding BarConfig.text"}
14892033
14902034 def encode_text(value) when is_binary(value), do: value
14912035 def encode_text(_), do: {:error, "Unexpected type when encoding BarConfig.text"}
14922036
2037+ def decode_theta(value) when is_float(value), do: value
2038+ def decode_theta(value) when is_integer(value), do: value
2039+ def decode_theta(_), do: {:error, "Unexpected type when decoding BarConfig.theta"}
2040+
2041+ def encode_theta(value) when is_float(value), do: value
2042+ def encode_theta(value) when is_integer(value), do: value
2043+ def encode_theta(_), do: {:error, "Unexpected type when encoding BarConfig.theta"}
2044+
14932045 def from_map(m) do
14942046 %BarConfig{
14952047 align: m["align"] && HorizontalAlign.decode(m["align"]),
1496- angle: m["angle"],
2048+ angle: m["angle"] && decode_angle(m["angle"]),
14972049 baseline: m["baseline"] && VerticalAlign.decode(m["baseline"]),
1498- bin_spacing: m["binSpacing"],
2050+ bin_spacing: m["binSpacing"] && decode_bin_spacing(m["binSpacing"]),
14992051 color: m["color"] && decode_color(m["color"]),
1500- continuous_band_size: m["continuousBandSize"],
2052+ continuous_band_size: m["continuousBandSize"] && decode_continuous_band_size(m["continuousBandSize"]),
15012053 cursor: m["cursor"] && Cursor.decode(m["cursor"]),
1502- discrete_band_size: m["discreteBandSize"],
1503- dx: m["dx"],
1504- dy: m["dy"],
2054+ discrete_band_size: m["discreteBandSize"] && decode_discrete_band_size(m["discreteBandSize"]),
2055+ dx: m["dx"] && decode_dx(m["dx"]),
2056+ dy: m["dy"] && decode_dy(m["dy"]),
15052057 fill: m["fill"] && decode_fill(m["fill"]),
15062058 filled: m["filled"],
1507- fill_opacity: m["fillOpacity"],
2059+ fill_opacity: m["fillOpacity"] && decode_fill_opacity(m["fillOpacity"]),
15082060 font: m["font"] && decode_font(m["font"]),
1509- font_size: m["fontSize"],
2061+ font_size: m["fontSize"] && decode_font_size(m["fontSize"]),
15102062 font_style: m["fontStyle"] && FontStyle.decode(m["fontStyle"]),
15112063 font_weight: decode_font_weight(m["fontWeight"]),
15122064 href: m["href"] && decode_href(m["href"]),
15132065 interpolate: m["interpolate"] && Interpolate.decode(m["interpolate"]),
1514- limit: m["limit"],
1515- opacity: m["opacity"],
2066+ limit: m["limit"] && decode_limit(m["limit"]),
2067+ opacity: m["opacity"] && decode_opacity(m["opacity"]),
15162068 orient: m["orient"] && Orient.decode(m["orient"]),
1517- radius: m["radius"],
2069+ radius: m["radius"] && decode_radius(m["radius"]),
15182070 shape: m["shape"] && decode_shape(m["shape"]),
1519- size: m["size"],
2071+ size: m["size"] && decode_size(m["size"]),
15202072 stroke: m["stroke"] && decode_stroke(m["stroke"]),
15212073 stroke_dash: m["strokeDash"],
1522- stroke_dash_offset: m["strokeDashOffset"],
1523- stroke_opacity: m["strokeOpacity"],
1524- stroke_width: m["strokeWidth"],
1525- tension: m["tension"],
2074+ stroke_dash_offset: m["strokeDashOffset"] && decode_stroke_dash_offset(m["strokeDashOffset"]),
2075+ stroke_opacity: m["strokeOpacity"] && decode_stroke_opacity(m["strokeOpacity"]),
2076+ stroke_width: m["strokeWidth"] && decode_stroke_width(m["strokeWidth"]),
2077+ tension: m["tension"] && decode_tension(m["tension"]),
15262078 text: m["text"] && decode_text(m["text"]),
1527- theta: m["theta"],
2079+ theta: m["theta"] && decode_theta(m["theta"]),
15282080 }
15292081 end
15302082
@@ -1829,24 +2381,80 @@ defmodule LegendConfig do
18292381 title_padding: float() | nil
18302382 }
18312383
2384+ def decode_corner_radius(value) when is_float(value), do: value
2385+ def decode_corner_radius(value) when is_integer(value), do: value
2386+ def decode_corner_radius(_), do: {:error, "Unexpected type when decoding LegendConfig.corner_radius"}
2387+
2388+ def encode_corner_radius(value) when is_float(value), do: value
2389+ def encode_corner_radius(value) when is_integer(value), do: value
2390+ def encode_corner_radius(_), do: {:error, "Unexpected type when encoding LegendConfig.corner_radius"}
2391+
2392+ def decode_entry_padding(value) when is_float(value), do: value
2393+ def decode_entry_padding(value) when is_integer(value), do: value
2394+ def decode_entry_padding(_), do: {:error, "Unexpected type when decoding LegendConfig.entry_padding"}
2395+
2396+ def encode_entry_padding(value) when is_float(value), do: value
2397+ def encode_entry_padding(value) when is_integer(value), do: value
2398+ def encode_entry_padding(_), do: {:error, "Unexpected type when encoding LegendConfig.entry_padding"}
2399+
18322400 def decode_fill_color(value) when is_binary(value), do: value
18332401 def decode_fill_color(_), do: {:error, "Unexpected type when decoding LegendConfig.fill_color"}
18342402
18352403 def encode_fill_color(value) when is_binary(value), do: value
18362404 def encode_fill_color(_), do: {:error, "Unexpected type when encoding LegendConfig.fill_color"}
18372405
2406+ def decode_gradient_height(value) when is_float(value) and value >= 0, do: value
2407+ def decode_gradient_height(value) when is_integer(value) and value >= 0, do: value
2408+ def decode_gradient_height(_), do: {:error, "Unexpected type when decoding LegendConfig.gradient_height"}
2409+
2410+ def encode_gradient_height(value) when is_float(value), do: value
2411+ def encode_gradient_height(value) when is_integer(value), do: value
2412+ def encode_gradient_height(_), do: {:error, "Unexpected type when encoding LegendConfig.gradient_height"}
2413+
18382414 def decode_gradient_label_baseline(value) when is_binary(value), do: value
18392415 def decode_gradient_label_baseline(_), do: {:error, "Unexpected type when decoding LegendConfig.gradient_label_baseline"}
18402416
18412417 def encode_gradient_label_baseline(value) when is_binary(value), do: value
18422418 def encode_gradient_label_baseline(_), do: {:error, "Unexpected type when encoding LegendConfig.gradient_label_baseline"}
18432419
2420+ def decode_gradient_label_limit(value) when is_float(value), do: value
2421+ def decode_gradient_label_limit(value) when is_integer(value), do: value
2422+ def decode_gradient_label_limit(_), do: {:error, "Unexpected type when decoding LegendConfig.gradient_label_limit"}
2423+
2424+ def encode_gradient_label_limit(value) when is_float(value), do: value
2425+ def encode_gradient_label_limit(value) when is_integer(value), do: value
2426+ def encode_gradient_label_limit(_), do: {:error, "Unexpected type when encoding LegendConfig.gradient_label_limit"}
2427+
2428+ def decode_gradient_label_offset(value) when is_float(value), do: value
2429+ def decode_gradient_label_offset(value) when is_integer(value), do: value
2430+ def decode_gradient_label_offset(_), do: {:error, "Unexpected type when decoding LegendConfig.gradient_label_offset"}
2431+
2432+ def encode_gradient_label_offset(value) when is_float(value), do: value
2433+ def encode_gradient_label_offset(value) when is_integer(value), do: value
2434+ def encode_gradient_label_offset(_), do: {:error, "Unexpected type when encoding LegendConfig.gradient_label_offset"}
2435+
18442436 def decode_gradient_stroke_color(value) when is_binary(value), do: value
18452437 def decode_gradient_stroke_color(_), do: {:error, "Unexpected type when decoding LegendConfig.gradient_stroke_color"}
18462438
18472439 def encode_gradient_stroke_color(value) when is_binary(value), do: value
18482440 def encode_gradient_stroke_color(_), do: {:error, "Unexpected type when encoding LegendConfig.gradient_stroke_color"}
18492441
2442+ def decode_gradient_stroke_width(value) when is_float(value) and value >= 0, do: value
2443+ def decode_gradient_stroke_width(value) when is_integer(value) and value >= 0, do: value
2444+ def decode_gradient_stroke_width(_), do: {:error, "Unexpected type when decoding LegendConfig.gradient_stroke_width"}
2445+
2446+ def encode_gradient_stroke_width(value) when is_float(value), do: value
2447+ def encode_gradient_stroke_width(value) when is_integer(value), do: value
2448+ def encode_gradient_stroke_width(_), do: {:error, "Unexpected type when encoding LegendConfig.gradient_stroke_width"}
2449+
2450+ def decode_gradient_width(value) when is_float(value) and value >= 0, do: value
2451+ def decode_gradient_width(value) when is_integer(value) and value >= 0, do: value
2452+ def decode_gradient_width(_), do: {:error, "Unexpected type when decoding LegendConfig.gradient_width"}
2453+
2454+ def encode_gradient_width(value) when is_float(value), do: value
2455+ def encode_gradient_width(value) when is_integer(value), do: value
2456+ def encode_gradient_width(_), do: {:error, "Unexpected type when encoding LegendConfig.gradient_width"}
2457+
18502458 def decode_label_align(value) when is_binary(value), do: value
18512459 def decode_label_align(_), do: {:error, "Unexpected type when decoding LegendConfig.label_align"}
18522460
@@ -1871,18 +2479,82 @@ defmodule LegendConfig do
18712479 def encode_label_font(value) when is_binary(value), do: value
18722480 def encode_label_font(_), do: {:error, "Unexpected type when encoding LegendConfig.label_font"}
18732481
2482+ def decode_label_font_size(value) when is_float(value) and value >= 0, do: value
2483+ def decode_label_font_size(value) when is_integer(value) and value >= 0, do: value
2484+ def decode_label_font_size(_), do: {:error, "Unexpected type when decoding LegendConfig.label_font_size"}
2485+
2486+ def encode_label_font_size(value) when is_float(value), do: value
2487+ def encode_label_font_size(value) when is_integer(value), do: value
2488+ def encode_label_font_size(_), do: {:error, "Unexpected type when encoding LegendConfig.label_font_size"}
2489+
2490+ def decode_label_limit(value) when is_float(value), do: value
2491+ def decode_label_limit(value) when is_integer(value), do: value
2492+ def decode_label_limit(_), do: {:error, "Unexpected type when decoding LegendConfig.label_limit"}
2493+
2494+ def encode_label_limit(value) when is_float(value), do: value
2495+ def encode_label_limit(value) when is_integer(value), do: value
2496+ def encode_label_limit(_), do: {:error, "Unexpected type when encoding LegendConfig.label_limit"}
2497+
2498+ def decode_label_offset(value) when is_float(value) and value >= 0, do: value
2499+ def decode_label_offset(value) when is_integer(value) and value >= 0, do: value
2500+ def decode_label_offset(_), do: {:error, "Unexpected type when decoding LegendConfig.label_offset"}
2501+
2502+ def encode_label_offset(value) when is_float(value), do: value
2503+ def encode_label_offset(value) when is_integer(value), do: value
2504+ def encode_label_offset(_), do: {:error, "Unexpected type when encoding LegendConfig.label_offset"}
2505+
2506+ def decode_offset(value) when is_float(value), do: value
2507+ def decode_offset(value) when is_integer(value), do: value
2508+ def decode_offset(_), do: {:error, "Unexpected type when decoding LegendConfig.offset"}
2509+
2510+ def encode_offset(value) when is_float(value), do: value
2511+ def encode_offset(value) when is_integer(value), do: value
2512+ def encode_offset(_), do: {:error, "Unexpected type when encoding LegendConfig.offset"}
2513+
2514+ def decode_padding(value) when is_float(value), do: value
2515+ def decode_padding(value) when is_integer(value), do: value
2516+ def decode_padding(_), do: {:error, "Unexpected type when decoding LegendConfig.padding"}
2517+
2518+ def encode_padding(value) when is_float(value), do: value
2519+ def encode_padding(value) when is_integer(value), do: value
2520+ def encode_padding(_), do: {:error, "Unexpected type when encoding LegendConfig.padding"}
2521+
18742522 def decode_stroke_color(value) when is_binary(value), do: value
18752523 def decode_stroke_color(_), do: {:error, "Unexpected type when decoding LegendConfig.stroke_color"}
18762524
18772525 def encode_stroke_color(value) when is_binary(value), do: value
18782526 def encode_stroke_color(_), do: {:error, "Unexpected type when encoding LegendConfig.stroke_color"}
18792527
2528+ def decode_stroke_width(value) when is_float(value), do: value
2529+ def decode_stroke_width(value) when is_integer(value), do: value
2530+ def decode_stroke_width(_), do: {:error, "Unexpected type when decoding LegendConfig.stroke_width"}
2531+
2532+ def encode_stroke_width(value) when is_float(value), do: value
2533+ def encode_stroke_width(value) when is_integer(value), do: value
2534+ def encode_stroke_width(_), do: {:error, "Unexpected type when encoding LegendConfig.stroke_width"}
2535+
18802536 def decode_symbol_color(value) when is_binary(value), do: value
18812537 def decode_symbol_color(_), do: {:error, "Unexpected type when decoding LegendConfig.symbol_color"}
18822538
18832539 def encode_symbol_color(value) when is_binary(value), do: value
18842540 def encode_symbol_color(_), do: {:error, "Unexpected type when encoding LegendConfig.symbol_color"}
18852541
2542+ def decode_symbol_size(value) when is_float(value) and value >= 0, do: value
2543+ def decode_symbol_size(value) when is_integer(value) and value >= 0, do: value
2544+ def decode_symbol_size(_), do: {:error, "Unexpected type when decoding LegendConfig.symbol_size"}
2545+
2546+ def encode_symbol_size(value) when is_float(value), do: value
2547+ def encode_symbol_size(value) when is_integer(value), do: value
2548+ def encode_symbol_size(_), do: {:error, "Unexpected type when encoding LegendConfig.symbol_size"}
2549+
2550+ def decode_symbol_stroke_width(value) when is_float(value) and value >= 0, do: value
2551+ def decode_symbol_stroke_width(value) when is_integer(value) and value >= 0, do: value
2552+ def decode_symbol_stroke_width(_), do: {:error, "Unexpected type when decoding LegendConfig.symbol_stroke_width"}
2553+
2554+ def encode_symbol_stroke_width(value) when is_float(value), do: value
2555+ def encode_symbol_stroke_width(value) when is_integer(value), do: value
2556+ def encode_symbol_stroke_width(_), do: {:error, "Unexpected type when encoding LegendConfig.symbol_stroke_width"}
2557+
18862558 def decode_symbol_type(value) when is_binary(value), do: value
18872559 def decode_symbol_type(_), do: {:error, "Unexpected type when decoding LegendConfig.symbol_type"}
18882560
@@ -1913,44 +2585,68 @@ defmodule LegendConfig do
19132585 def encode_title_font(value) when is_binary(value), do: value
19142586 def encode_title_font(_), do: {:error, "Unexpected type when encoding LegendConfig.title_font"}
19152587
2588+ def decode_title_font_size(value) when is_float(value), do: value
2589+ def decode_title_font_size(value) when is_integer(value), do: value
2590+ def decode_title_font_size(_), do: {:error, "Unexpected type when decoding LegendConfig.title_font_size"}
2591+
2592+ def encode_title_font_size(value) when is_float(value), do: value
2593+ def encode_title_font_size(value) when is_integer(value), do: value
2594+ def encode_title_font_size(_), do: {:error, "Unexpected type when encoding LegendConfig.title_font_size"}
2595+
2596+ def decode_title_limit(value) when is_float(value), do: value
2597+ def decode_title_limit(value) when is_integer(value), do: value
2598+ def decode_title_limit(_), do: {:error, "Unexpected type when decoding LegendConfig.title_limit"}
2599+
2600+ def encode_title_limit(value) when is_float(value), do: value
2601+ def encode_title_limit(value) when is_integer(value), do: value
2602+ def encode_title_limit(_), do: {:error, "Unexpected type when encoding LegendConfig.title_limit"}
2603+
2604+ def decode_title_padding(value) when is_float(value), do: value
2605+ def decode_title_padding(value) when is_integer(value), do: value
2606+ def decode_title_padding(_), do: {:error, "Unexpected type when decoding LegendConfig.title_padding"}
2607+
2608+ def encode_title_padding(value) when is_float(value), do: value
2609+ def encode_title_padding(value) when is_integer(value), do: value
2610+ def encode_title_padding(_), do: {:error, "Unexpected type when encoding LegendConfig.title_padding"}
2611+
19162612 def from_map(m) do
19172613 %LegendConfig{
1918- corner_radius: m["cornerRadius"],
1919- entry_padding: m["entryPadding"],
2614+ corner_radius: m["cornerRadius"] && decode_corner_radius(m["cornerRadius"]),
2615+ entry_padding: m["entryPadding"] && decode_entry_padding(m["entryPadding"]),
19202616 fill_color: m["fillColor"] && decode_fill_color(m["fillColor"]),
1921- gradient_height: m["gradientHeight"],
2617+ gradient_height: m["gradientHeight"] && decode_gradient_height(m["gradientHeight"]),
19222618 gradient_label_baseline: m["gradientLabelBaseline"] && decode_gradient_label_baseline(m["gradientLabelBaseline"]),
1923- gradient_label_limit: m["gradientLabelLimit"],
1924- gradient_label_offset: m["gradientLabelOffset"],
2619+ gradient_label_limit: m["gradientLabelLimit"] && decode_gradient_label_limit(m["gradientLabelLimit"]),
2620+ gradient_label_offset: m["gradientLabelOffset"] && decode_gradient_label_offset(m["gradientLabelOffset"]),
19252621 gradient_stroke_color: m["gradientStrokeColor"] && decode_gradient_stroke_color(m["gradientStrokeColor"]),
1926- gradient_stroke_width: m["gradientStrokeWidth"],
1927- gradient_width: m["gradientWidth"],
2622+ gradient_stroke_width: m["gradientStrokeWidth"] && decode_gradient_stroke_width(m["gradientStrokeWidth"]),
2623+ gradient_width: m["gradientWidth"] && decode_gradient_width(m["gradientWidth"]),
19282624 label_align: m["labelAlign"] && decode_label_align(m["labelAlign"]),
19292625 label_baseline: m["labelBaseline"] && decode_label_baseline(m["labelBaseline"]),
19302626 label_color: m["labelColor"] && decode_label_color(m["labelColor"]),
19312627 label_font: m["labelFont"] && decode_label_font(m["labelFont"]),
1932- label_font_size: m["labelFontSize"],
1933- label_limit: m["labelLimit"],
1934- label_offset: m["labelOffset"],
1935- offset: m["offset"],
2628+ label_font_size: m["labelFontSize"] && decode_label_font_size(m["labelFontSize"]),
2629+ label_limit: m["labelLimit"] && decode_label_limit(m["labelLimit"]),
2630+ label_offset: m["labelOffset"] && decode_label_offset(m["labelOffset"]),
2631+ offset: m["offset"] && decode_offset(m["offset"]),
19362632 orient: m["orient"] && LegendOrient.decode(m["orient"]),
1937- padding: m["padding"],
2633+ padding: m["padding"] && decode_padding(m["padding"]),
19382634 short_time_labels: m["shortTimeLabels"],
19392635 stroke_color: m["strokeColor"] && decode_stroke_color(m["strokeColor"]),
19402636 stroke_dash: m["strokeDash"],
1941- stroke_width: m["strokeWidth"],
2637+ stroke_width: m["strokeWidth"] && decode_stroke_width(m["strokeWidth"]),
19422638 symbol_color: m["symbolColor"] && decode_symbol_color(m["symbolColor"]),
1943- symbol_size: m["symbolSize"],
1944- symbol_stroke_width: m["symbolStrokeWidth"],
2639+ symbol_size: m["symbolSize"] && decode_symbol_size(m["symbolSize"]),
2640+ symbol_stroke_width: m["symbolStrokeWidth"] && decode_symbol_stroke_width(m["symbolStrokeWidth"]),
19452641 symbol_type: m["symbolType"] && decode_symbol_type(m["symbolType"]),
19462642 title_align: m["titleAlign"] && decode_title_align(m["titleAlign"]),
19472643 title_baseline: m["titleBaseline"] && decode_title_baseline(m["titleBaseline"]),
19482644 title_color: m["titleColor"] && decode_title_color(m["titleColor"]),
19492645 title_font: m["titleFont"] && decode_title_font(m["titleFont"]),
1950- title_font_size: m["titleFontSize"],
2646+ title_font_size: m["titleFontSize"] && decode_title_font_size(m["titleFontSize"]),
19512647 title_font_weight: m["titleFontWeight"],
1952- title_limit: m["titleLimit"],
1953- title_padding: m["titlePadding"],
2648+ title_limit: m["titleLimit"] && decode_title_limit(m["titleLimit"]),
2649+ title_padding: m["titlePadding"] && decode_title_padding(m["titlePadding"]),
19542650 }
19552651 end
19562652
@@ -2018,12 +2714,44 @@ defmodule PaddingClass do
20182714 top: float() | nil
20192715 }
20202716
2717+ def decode_bottom(value) when is_float(value), do: value
2718+ def decode_bottom(value) when is_integer(value), do: value
2719+ def decode_bottom(_), do: {:error, "Unexpected type when decoding PaddingClass.bottom"}
2720+
2721+ def encode_bottom(value) when is_float(value), do: value
2722+ def encode_bottom(value) when is_integer(value), do: value
2723+ def encode_bottom(_), do: {:error, "Unexpected type when encoding PaddingClass.bottom"}
2724+
2725+ def decode_left(value) when is_float(value), do: value
2726+ def decode_left(value) when is_integer(value), do: value
2727+ def decode_left(_), do: {:error, "Unexpected type when decoding PaddingClass.left"}
2728+
2729+ def encode_left(value) when is_float(value), do: value
2730+ def encode_left(value) when is_integer(value), do: value
2731+ def encode_left(_), do: {:error, "Unexpected type when encoding PaddingClass.left"}
2732+
2733+ def decode_right(value) when is_float(value), do: value
2734+ def decode_right(value) when is_integer(value), do: value
2735+ def decode_right(_), do: {:error, "Unexpected type when decoding PaddingClass.right"}
2736+
2737+ def encode_right(value) when is_float(value), do: value
2738+ def encode_right(value) when is_integer(value), do: value
2739+ def encode_right(_), do: {:error, "Unexpected type when encoding PaddingClass.right"}
2740+
2741+ def decode_top(value) when is_float(value), do: value
2742+ def decode_top(value) when is_integer(value), do: value
2743+ def decode_top(_), do: {:error, "Unexpected type when decoding PaddingClass.top"}
2744+
2745+ def encode_top(value) when is_float(value), do: value
2746+ def encode_top(value) when is_integer(value), do: value
2747+ def encode_top(_), do: {:error, "Unexpected type when encoding PaddingClass.top"}
2748+
20212749 def from_map(m) do
20222750 %PaddingClass{
2023- bottom: m["bottom"],
2024- left: m["left"],
2025- right: m["right"],
2026- top: m["top"],
2751+ bottom: m["bottom"] && decode_bottom(m["bottom"]),
2752+ left: m["left"] && decode_left(m["left"]),
2753+ right: m["right"] && decode_right(m["right"]),
2754+ top: m["top"] && decode_top(m["top"]),
20272755 }
20282756 end
20292757
@@ -2150,6 +2878,54 @@ defmodule ProjectionConfig do
21502878 type: VGProjectionType.t() | nil
21512879 }
21522880
2881+ def decode_clip_angle(value) when is_float(value), do: value
2882+ def decode_clip_angle(value) when is_integer(value), do: value
2883+ def decode_clip_angle(_), do: {:error, "Unexpected type when decoding ProjectionConfig.clip_angle"}
2884+
2885+ def encode_clip_angle(value) when is_float(value), do: value
2886+ def encode_clip_angle(value) when is_integer(value), do: value
2887+ def encode_clip_angle(_), do: {:error, "Unexpected type when encoding ProjectionConfig.clip_angle"}
2888+
2889+ def decode_coefficient(value) when is_float(value), do: value
2890+ def decode_coefficient(value) when is_integer(value), do: value
2891+ def decode_coefficient(_), do: {:error, "Unexpected type when decoding ProjectionConfig.coefficient"}
2892+
2893+ def encode_coefficient(value) when is_float(value), do: value
2894+ def encode_coefficient(value) when is_integer(value), do: value
2895+ def encode_coefficient(_), do: {:error, "Unexpected type when encoding ProjectionConfig.coefficient"}
2896+
2897+ def decode_distance(value) when is_float(value), do: value
2898+ def decode_distance(value) when is_integer(value), do: value
2899+ def decode_distance(_), do: {:error, "Unexpected type when decoding ProjectionConfig.distance"}
2900+
2901+ def encode_distance(value) when is_float(value), do: value
2902+ def encode_distance(value) when is_integer(value), do: value
2903+ def encode_distance(_), do: {:error, "Unexpected type when encoding ProjectionConfig.distance"}
2904+
2905+ def decode_fraction(value) when is_float(value), do: value
2906+ def decode_fraction(value) when is_integer(value), do: value
2907+ def decode_fraction(_), do: {:error, "Unexpected type when decoding ProjectionConfig.fraction"}
2908+
2909+ def encode_fraction(value) when is_float(value), do: value
2910+ def encode_fraction(value) when is_integer(value), do: value
2911+ def encode_fraction(_), do: {:error, "Unexpected type when encoding ProjectionConfig.fraction"}
2912+
2913+ def decode_lobes(value) when is_float(value), do: value
2914+ def decode_lobes(value) when is_integer(value), do: value
2915+ def decode_lobes(_), do: {:error, "Unexpected type when decoding ProjectionConfig.lobes"}
2916+
2917+ def encode_lobes(value) when is_float(value), do: value
2918+ def encode_lobes(value) when is_integer(value), do: value
2919+ def encode_lobes(_), do: {:error, "Unexpected type when encoding ProjectionConfig.lobes"}
2920+
2921+ def decode_parallel(value) when is_float(value), do: value
2922+ def decode_parallel(value) when is_integer(value), do: value
2923+ def decode_parallel(_), do: {:error, "Unexpected type when decoding ProjectionConfig.parallel"}
2924+
2925+ def encode_parallel(value) when is_float(value), do: value
2926+ def encode_parallel(value) when is_integer(value), do: value
2927+ def encode_parallel(_), do: {:error, "Unexpected type when encoding ProjectionConfig.parallel"}
2928+
21532929 def decode_precision_value(value) when is_float(value), do: value
21542930 def decode_precision_value(value) when is_integer(value), do: value
21552931 def decode_precision_value(value) when is_binary(value), do: value
@@ -2160,23 +2936,55 @@ defmodule ProjectionConfig do
21602936 def encode_precision_value(value) when is_binary(value), do: value
21612937 def encode_precision_value(_), do: {:error, "Unexpected type when encoding ProjectionConfig.precision"}
21622938
2939+ def decode_radius(value) when is_float(value), do: value
2940+ def decode_radius(value) when is_integer(value), do: value
2941+ def decode_radius(_), do: {:error, "Unexpected type when decoding ProjectionConfig.radius"}
2942+
2943+ def encode_radius(value) when is_float(value), do: value
2944+ def encode_radius(value) when is_integer(value), do: value
2945+ def encode_radius(_), do: {:error, "Unexpected type when encoding ProjectionConfig.radius"}
2946+
2947+ def decode_ratio(value) when is_float(value), do: value
2948+ def decode_ratio(value) when is_integer(value), do: value
2949+ def decode_ratio(_), do: {:error, "Unexpected type when decoding ProjectionConfig.ratio"}
2950+
2951+ def encode_ratio(value) when is_float(value), do: value
2952+ def encode_ratio(value) when is_integer(value), do: value
2953+ def encode_ratio(_), do: {:error, "Unexpected type when encoding ProjectionConfig.ratio"}
2954+
2955+ def decode_spacing(value) when is_float(value), do: value
2956+ def decode_spacing(value) when is_integer(value), do: value
2957+ def decode_spacing(_), do: {:error, "Unexpected type when decoding ProjectionConfig.spacing"}
2958+
2959+ def encode_spacing(value) when is_float(value), do: value
2960+ def encode_spacing(value) when is_integer(value), do: value
2961+ def encode_spacing(_), do: {:error, "Unexpected type when encoding ProjectionConfig.spacing"}
2962+
2963+ def decode_tilt(value) when is_float(value), do: value
2964+ def decode_tilt(value) when is_integer(value), do: value
2965+ def decode_tilt(_), do: {:error, "Unexpected type when decoding ProjectionConfig.tilt"}
2966+
2967+ def encode_tilt(value) when is_float(value), do: value
2968+ def encode_tilt(value) when is_integer(value), do: value
2969+ def encode_tilt(_), do: {:error, "Unexpected type when encoding ProjectionConfig.tilt"}
2970+
21632971 def from_map(m) do
21642972 %ProjectionConfig{
21652973 center: m["center"],
2166- clip_angle: m["clipAngle"],
2974+ clip_angle: m["clipAngle"] && decode_clip_angle(m["clipAngle"]),
21672975 clip_extent: m["clipExtent"],
2168- coefficient: m["coefficient"],
2169- distance: m["distance"],
2170- fraction: m["fraction"],
2171- lobes: m["lobes"],
2172- parallel: m["parallel"],
2976+ coefficient: m["coefficient"] && decode_coefficient(m["coefficient"]),
2977+ distance: m["distance"] && decode_distance(m["distance"]),
2978+ fraction: m["fraction"] && decode_fraction(m["fraction"]),
2979+ lobes: m["lobes"] && decode_lobes(m["lobes"]),
2980+ parallel: m["parallel"] && decode_parallel(m["parallel"]),
21732981 precision: m["precision"]
21742982 |> Map.new(fn {key, value} -> {key, decode_precision_value(value)} end),
2175- radius: m["radius"],
2176- ratio: m["ratio"],
2983+ radius: m["radius"] && decode_radius(m["radius"]),
2984+ ratio: m["ratio"] && decode_ratio(m["ratio"]),
21772985 rotate: m["rotate"],
2178- spacing: m["spacing"],
2179- tilt: m["tilt"],
2986+ spacing: m["spacing"] && decode_spacing(m["spacing"]),
2987+ tilt: m["tilt"] && decode_tilt(m["tilt"]),
21802988 type: m["type"] && VGProjectionType.decode(m["type"]),
21812989 }
21822990 end
@@ -2225,18 +3033,34 @@ defmodule VGScheme do
22253033 step: float() | nil
22263034 }
22273035
3036+ def decode_count(value) when is_float(value), do: value
3037+ def decode_count(value) when is_integer(value), do: value
3038+ def decode_count(_), do: {:error, "Unexpected type when decoding VGScheme.count"}
3039+
3040+ def encode_count(value) when is_float(value), do: value
3041+ def encode_count(value) when is_integer(value), do: value
3042+ def encode_count(_), do: {:error, "Unexpected type when encoding VGScheme.count"}
3043+
22283044 def decode_scheme(value) when is_binary(value), do: value
22293045 def decode_scheme(_), do: {:error, "Unexpected type when decoding VGScheme.scheme"}
22303046
22313047 def encode_scheme(value) when is_binary(value), do: value
22323048 def encode_scheme(_), do: {:error, "Unexpected type when encoding VGScheme.scheme"}
22333049
3050+ def decode_step(value) when is_float(value), do: value
3051+ def decode_step(value) when is_integer(value), do: value
3052+ def decode_step(_), do: {:error, "Unexpected type when decoding VGScheme.step"}
3053+
3054+ def encode_step(value) when is_float(value), do: value
3055+ def encode_step(value) when is_integer(value), do: value
3056+ def encode_step(_), do: {:error, "Unexpected type when encoding VGScheme.step"}
3057+
22343058 def from_map(m) do
22353059 %VGScheme{
2236- count: m["count"],
3060+ count: m["count"] && decode_count(m["count"]),
22373061 extent: m["extent"],
22383062 scheme: m["scheme"] && decode_scheme(m["scheme"]),
2239- step: m["step"],
3063+ step: m["step"] && decode_step(m["step"]),
22403064 }
22413065 end
22423066
@@ -2312,26 +3136,146 @@ defmodule ScaleConfig do
23123136 use_unaggregated_domain: boolean() | nil
23133137 }
23143138
3139+ def decode_band_padding_inner(value) when is_float(value) and value >= 0 and value <= 1, do: value
3140+ def decode_band_padding_inner(value) when is_integer(value) and value >= 0 and value <= 1, do: value
3141+ def decode_band_padding_inner(_), do: {:error, "Unexpected type when decoding ScaleConfig.band_padding_inner"}
3142+
3143+ def encode_band_padding_inner(value) when is_float(value), do: value
3144+ def encode_band_padding_inner(value) when is_integer(value), do: value
3145+ def encode_band_padding_inner(_), do: {:error, "Unexpected type when encoding ScaleConfig.band_padding_inner"}
3146+
3147+ def decode_band_padding_outer(value) when is_float(value) and value >= 0 and value <= 1, do: value
3148+ def decode_band_padding_outer(value) when is_integer(value) and value >= 0 and value <= 1, do: value
3149+ def decode_band_padding_outer(_), do: {:error, "Unexpected type when decoding ScaleConfig.band_padding_outer"}
3150+
3151+ def encode_band_padding_outer(value) when is_float(value), do: value
3152+ def encode_band_padding_outer(value) when is_integer(value), do: value
3153+ def encode_band_padding_outer(_), do: {:error, "Unexpected type when encoding ScaleConfig.band_padding_outer"}
3154+
3155+ def decode_continuous_padding(value) when is_float(value) and value >= 0, do: value
3156+ def decode_continuous_padding(value) when is_integer(value) and value >= 0, do: value
3157+ def decode_continuous_padding(_), do: {:error, "Unexpected type when decoding ScaleConfig.continuous_padding"}
3158+
3159+ def encode_continuous_padding(value) when is_float(value), do: value
3160+ def encode_continuous_padding(value) when is_integer(value), do: value
3161+ def encode_continuous_padding(_), do: {:error, "Unexpected type when encoding ScaleConfig.continuous_padding"}
3162+
3163+ def decode_max_band_size(value) when is_float(value) and value >= 0, do: value
3164+ def decode_max_band_size(value) when is_integer(value) and value >= 0, do: value
3165+ def decode_max_band_size(_), do: {:error, "Unexpected type when decoding ScaleConfig.max_band_size"}
3166+
3167+ def encode_max_band_size(value) when is_float(value), do: value
3168+ def encode_max_band_size(value) when is_integer(value), do: value
3169+ def encode_max_band_size(_), do: {:error, "Unexpected type when encoding ScaleConfig.max_band_size"}
3170+
3171+ def decode_max_font_size(value) when is_float(value) and value >= 0, do: value
3172+ def decode_max_font_size(value) when is_integer(value) and value >= 0, do: value
3173+ def decode_max_font_size(_), do: {:error, "Unexpected type when decoding ScaleConfig.max_font_size"}
3174+
3175+ def encode_max_font_size(value) when is_float(value), do: value
3176+ def encode_max_font_size(value) when is_integer(value), do: value
3177+ def encode_max_font_size(_), do: {:error, "Unexpected type when encoding ScaleConfig.max_font_size"}
3178+
3179+ def decode_max_opacity(value) when is_float(value) and value >= 0 and value <= 1, do: value
3180+ def decode_max_opacity(value) when is_integer(value) and value >= 0 and value <= 1, do: value
3181+ def decode_max_opacity(_), do: {:error, "Unexpected type when decoding ScaleConfig.max_opacity"}
3182+
3183+ def encode_max_opacity(value) when is_float(value), do: value
3184+ def encode_max_opacity(value) when is_integer(value), do: value
3185+ def encode_max_opacity(_), do: {:error, "Unexpected type when encoding ScaleConfig.max_opacity"}
3186+
3187+ def decode_max_size(value) when is_float(value) and value >= 0, do: value
3188+ def decode_max_size(value) when is_integer(value) and value >= 0, do: value
3189+ def decode_max_size(_), do: {:error, "Unexpected type when decoding ScaleConfig.max_size"}
3190+
3191+ def encode_max_size(value) when is_float(value), do: value
3192+ def encode_max_size(value) when is_integer(value), do: value
3193+ def encode_max_size(_), do: {:error, "Unexpected type when encoding ScaleConfig.max_size"}
3194+
3195+ def decode_max_stroke_width(value) when is_float(value) and value >= 0, do: value
3196+ def decode_max_stroke_width(value) when is_integer(value) and value >= 0, do: value
3197+ def decode_max_stroke_width(_), do: {:error, "Unexpected type when decoding ScaleConfig.max_stroke_width"}
3198+
3199+ def encode_max_stroke_width(value) when is_float(value), do: value
3200+ def encode_max_stroke_width(value) when is_integer(value), do: value
3201+ def encode_max_stroke_width(_), do: {:error, "Unexpected type when encoding ScaleConfig.max_stroke_width"}
3202+
3203+ def decode_min_band_size(value) when is_float(value) and value >= 0, do: value
3204+ def decode_min_band_size(value) when is_integer(value) and value >= 0, do: value
3205+ def decode_min_band_size(_), do: {:error, "Unexpected type when decoding ScaleConfig.min_band_size"}
3206+
3207+ def encode_min_band_size(value) when is_float(value), do: value
3208+ def encode_min_band_size(value) when is_integer(value), do: value
3209+ def encode_min_band_size(_), do: {:error, "Unexpected type when encoding ScaleConfig.min_band_size"}
3210+
3211+ def decode_min_font_size(value) when is_float(value) and value >= 0, do: value
3212+ def decode_min_font_size(value) when is_integer(value) and value >= 0, do: value
3213+ def decode_min_font_size(_), do: {:error, "Unexpected type when decoding ScaleConfig.min_font_size"}
3214+
3215+ def encode_min_font_size(value) when is_float(value), do: value
3216+ def encode_min_font_size(value) when is_integer(value), do: value
3217+ def encode_min_font_size(_), do: {:error, "Unexpected type when encoding ScaleConfig.min_font_size"}
3218+
3219+ def decode_min_opacity(value) when is_float(value) and value >= 0 and value <= 1, do: value
3220+ def decode_min_opacity(value) when is_integer(value) and value >= 0 and value <= 1, do: value
3221+ def decode_min_opacity(_), do: {:error, "Unexpected type when decoding ScaleConfig.min_opacity"}
3222+
3223+ def encode_min_opacity(value) when is_float(value), do: value
3224+ def encode_min_opacity(value) when is_integer(value), do: value
3225+ def encode_min_opacity(_), do: {:error, "Unexpected type when encoding ScaleConfig.min_opacity"}
3226+
3227+ def decode_min_size(value) when is_float(value) and value >= 0, do: value
3228+ def decode_min_size(value) when is_integer(value) and value >= 0, do: value
3229+ def decode_min_size(_), do: {:error, "Unexpected type when decoding ScaleConfig.min_size"}
3230+
3231+ def encode_min_size(value) when is_float(value), do: value
3232+ def encode_min_size(value) when is_integer(value), do: value
3233+ def encode_min_size(_), do: {:error, "Unexpected type when encoding ScaleConfig.min_size"}
3234+
3235+ def decode_min_stroke_width(value) when is_float(value) and value >= 0, do: value
3236+ def decode_min_stroke_width(value) when is_integer(value) and value >= 0, do: value
3237+ def decode_min_stroke_width(_), do: {:error, "Unexpected type when decoding ScaleConfig.min_stroke_width"}
3238+
3239+ def encode_min_stroke_width(value) when is_float(value), do: value
3240+ def encode_min_stroke_width(value) when is_integer(value), do: value
3241+ def encode_min_stroke_width(_), do: {:error, "Unexpected type when encoding ScaleConfig.min_stroke_width"}
3242+
3243+ def decode_point_padding(value) when is_float(value) and value >= 0 and value <= 1, do: value
3244+ def decode_point_padding(value) when is_integer(value) and value >= 0 and value <= 1, do: value
3245+ def decode_point_padding(_), do: {:error, "Unexpected type when decoding ScaleConfig.point_padding"}
3246+
3247+ def encode_point_padding(value) when is_float(value), do: value
3248+ def encode_point_padding(value) when is_integer(value), do: value
3249+ def encode_point_padding(_), do: {:error, "Unexpected type when encoding ScaleConfig.point_padding"}
3250+
3251+ def decode_text_x_range_step(value) when is_float(value) and value >= 0, do: value
3252+ def decode_text_x_range_step(value) when is_integer(value) and value >= 0, do: value
3253+ def decode_text_x_range_step(_), do: {:error, "Unexpected type when decoding ScaleConfig.text_x_range_step"}
3254+
3255+ def encode_text_x_range_step(value) when is_float(value), do: value
3256+ def encode_text_x_range_step(value) when is_integer(value), do: value
3257+ def encode_text_x_range_step(_), do: {:error, "Unexpected type when encoding ScaleConfig.text_x_range_step"}
3258+
23153259 def from_map(m) do
23163260 %ScaleConfig{
2317- band_padding_inner: m["bandPaddingInner"],
2318- band_padding_outer: m["bandPaddingOuter"],
3261+ band_padding_inner: m["bandPaddingInner"] && decode_band_padding_inner(m["bandPaddingInner"]),
3262+ band_padding_outer: m["bandPaddingOuter"] && decode_band_padding_outer(m["bandPaddingOuter"]),
23193263 clamp: m["clamp"],
2320- continuous_padding: m["continuousPadding"],
2321- max_band_size: m["maxBandSize"],
2322- max_font_size: m["maxFontSize"],
2323- max_opacity: m["maxOpacity"],
2324- max_size: m["maxSize"],
2325- max_stroke_width: m["maxStrokeWidth"],
2326- min_band_size: m["minBandSize"],
2327- min_font_size: m["minFontSize"],
2328- min_opacity: m["minOpacity"],
2329- min_size: m["minSize"],
2330- min_stroke_width: m["minStrokeWidth"],
2331- point_padding: m["pointPadding"],
3264+ continuous_padding: m["continuousPadding"] && decode_continuous_padding(m["continuousPadding"]),
3265+ max_band_size: m["maxBandSize"] && decode_max_band_size(m["maxBandSize"]),
3266+ max_font_size: m["maxFontSize"] && decode_max_font_size(m["maxFontSize"]),
3267+ max_opacity: m["maxOpacity"] && decode_max_opacity(m["maxOpacity"]),
3268+ max_size: m["maxSize"] && decode_max_size(m["maxSize"]),
3269+ max_stroke_width: m["maxStrokeWidth"] && decode_max_stroke_width(m["maxStrokeWidth"]),
3270+ min_band_size: m["minBandSize"] && decode_min_band_size(m["minBandSize"]),
3271+ min_font_size: m["minFontSize"] && decode_min_font_size(m["minFontSize"]),
3272+ min_opacity: m["minOpacity"] && decode_min_opacity(m["minOpacity"]),
3273+ min_size: m["minSize"] && decode_min_size(m["minSize"]),
3274+ min_stroke_width: m["minStrokeWidth"] && decode_min_stroke_width(m["minStrokeWidth"]),
3275+ point_padding: m["pointPadding"] && decode_point_padding(m["pointPadding"]),
23323276 range_step: m["rangeStep"],
23333277 round: m["round"],
2334- text_x_range_step: m["textXRangeStep"],
3278+ text_x_range_step: m["textXRangeStep"] && decode_text_x_range_step(m["textXRangeStep"]),
23353279 use_unaggregated_domain: m["useUnaggregatedDomain"],
23363280 }
23373281 end
@@ -2562,21 +3506,53 @@ defmodule BrushConfig do
25623506 def encode_fill(value) when is_binary(value), do: value
25633507 def encode_fill(_), do: {:error, "Unexpected type when encoding BrushConfig.fill"}
25643508
3509+ def decode_fill_opacity(value) when is_float(value), do: value
3510+ def decode_fill_opacity(value) when is_integer(value), do: value
3511+ def decode_fill_opacity(_), do: {:error, "Unexpected type when decoding BrushConfig.fill_opacity"}
3512+
3513+ def encode_fill_opacity(value) when is_float(value), do: value
3514+ def encode_fill_opacity(value) when is_integer(value), do: value
3515+ def encode_fill_opacity(_), do: {:error, "Unexpected type when encoding BrushConfig.fill_opacity"}
3516+
25653517 def decode_stroke(value) when is_binary(value), do: value
25663518 def decode_stroke(_), do: {:error, "Unexpected type when decoding BrushConfig.stroke"}
25673519
25683520 def encode_stroke(value) when is_binary(value), do: value
25693521 def encode_stroke(_), do: {:error, "Unexpected type when encoding BrushConfig.stroke"}
25703522
3523+ def decode_stroke_dash_offset(value) when is_float(value), do: value
3524+ def decode_stroke_dash_offset(value) when is_integer(value), do: value
3525+ def decode_stroke_dash_offset(_), do: {:error, "Unexpected type when decoding BrushConfig.stroke_dash_offset"}
3526+
3527+ def encode_stroke_dash_offset(value) when is_float(value), do: value
3528+ def encode_stroke_dash_offset(value) when is_integer(value), do: value
3529+ def encode_stroke_dash_offset(_), do: {:error, "Unexpected type when encoding BrushConfig.stroke_dash_offset"}
3530+
3531+ def decode_stroke_opacity(value) when is_float(value), do: value
3532+ def decode_stroke_opacity(value) when is_integer(value), do: value
3533+ def decode_stroke_opacity(_), do: {:error, "Unexpected type when decoding BrushConfig.stroke_opacity"}
3534+
3535+ def encode_stroke_opacity(value) when is_float(value), do: value
3536+ def encode_stroke_opacity(value) when is_integer(value), do: value
3537+ def encode_stroke_opacity(_), do: {:error, "Unexpected type when encoding BrushConfig.stroke_opacity"}
3538+
3539+ def decode_stroke_width(value) when is_float(value), do: value
3540+ def decode_stroke_width(value) when is_integer(value), do: value
3541+ def decode_stroke_width(_), do: {:error, "Unexpected type when decoding BrushConfig.stroke_width"}
3542+
3543+ def encode_stroke_width(value) when is_float(value), do: value
3544+ def encode_stroke_width(value) when is_integer(value), do: value
3545+ def encode_stroke_width(_), do: {:error, "Unexpected type when encoding BrushConfig.stroke_width"}
3546+
25713547 def from_map(m) do
25723548 %BrushConfig{
25733549 fill: m["fill"] && decode_fill(m["fill"]),
2574- fill_opacity: m["fillOpacity"],
3550+ fill_opacity: m["fillOpacity"] && decode_fill_opacity(m["fillOpacity"]),
25753551 stroke: m["stroke"] && decode_stroke(m["stroke"]),
25763552 stroke_dash: m["strokeDash"],
2577- stroke_dash_offset: m["strokeDashOffset"],
2578- stroke_opacity: m["strokeOpacity"],
2579- stroke_width: m["strokeWidth"],
3553+ stroke_dash_offset: m["strokeDashOffset"] && decode_stroke_dash_offset(m["strokeDashOffset"]),
3554+ stroke_opacity: m["strokeOpacity"] && decode_stroke_opacity(m["strokeOpacity"]),
3555+ stroke_width: m["strokeWidth"] && decode_stroke_width(m["strokeWidth"]),
25803556 }
25813557 end
25823558
@@ -2822,14 +3798,38 @@ defmodule VGBinding do
28223798 def encode_input(value) when is_binary(value), do: value
28233799 def encode_input(_), do: {:error, "Unexpected type when encoding VGBinding.input"}
28243800
3801+ def decode_max(value) when is_float(value), do: value
3802+ def decode_max(value) when is_integer(value), do: value
3803+ def decode_max(_), do: {:error, "Unexpected type when decoding VGBinding.max"}
3804+
3805+ def encode_max(value) when is_float(value), do: value
3806+ def encode_max(value) when is_integer(value), do: value
3807+ def encode_max(_), do: {:error, "Unexpected type when encoding VGBinding.max"}
3808+
3809+ def decode_min(value) when is_float(value), do: value
3810+ def decode_min(value) when is_integer(value), do: value
3811+ def decode_min(_), do: {:error, "Unexpected type when decoding VGBinding.min"}
3812+
3813+ def encode_min(value) when is_float(value), do: value
3814+ def encode_min(value) when is_integer(value), do: value
3815+ def encode_min(_), do: {:error, "Unexpected type when encoding VGBinding.min"}
3816+
3817+ def decode_step(value) when is_float(value), do: value
3818+ def decode_step(value) when is_integer(value), do: value
3819+ def decode_step(_), do: {:error, "Unexpected type when decoding VGBinding.step"}
3820+
3821+ def encode_step(value) when is_float(value), do: value
3822+ def encode_step(value) when is_integer(value), do: value
3823+ def encode_step(_), do: {:error, "Unexpected type when encoding VGBinding.step"}
3824+
28253825 def from_map(m) do
28263826 %VGBinding{
28273827 element: m["element"] && decode_element(m["element"]),
28283828 input: decode_input(m["input"]),
28293829 options: m["options"],
2830- max: m["max"],
2831- min: m["min"],
2832- step: m["step"],
3830+ max: m["max"] && decode_max(m["max"]),
3831+ min: m["min"] && decode_min(m["min"]),
3832+ step: m["step"] && decode_step(m["step"]),
28333833 }
28343834 end
28353835
@@ -3085,21 +4085,61 @@ defmodule VGMarkConfig do
30854085 theta: float() | nil
30864086 }
30874087
4088+ def decode_angle(value) when is_float(value) and value >= 0 and value <= 360, do: value
4089+ def decode_angle(value) when is_integer(value) and value >= 0 and value <= 360, do: value
4090+ def decode_angle(_), do: {:error, "Unexpected type when decoding VGMarkConfig.angle"}
4091+
4092+ def encode_angle(value) when is_float(value), do: value
4093+ def encode_angle(value) when is_integer(value), do: value
4094+ def encode_angle(_), do: {:error, "Unexpected type when encoding VGMarkConfig.angle"}
4095+
4096+ def decode_dx(value) when is_float(value), do: value
4097+ def decode_dx(value) when is_integer(value), do: value
4098+ def decode_dx(_), do: {:error, "Unexpected type when decoding VGMarkConfig.dx"}
4099+
4100+ def encode_dx(value) when is_float(value), do: value
4101+ def encode_dx(value) when is_integer(value), do: value
4102+ def encode_dx(_), do: {:error, "Unexpected type when encoding VGMarkConfig.dx"}
4103+
4104+ def decode_dy(value) when is_float(value), do: value
4105+ def decode_dy(value) when is_integer(value), do: value
4106+ def decode_dy(_), do: {:error, "Unexpected type when decoding VGMarkConfig.dy"}
4107+
4108+ def encode_dy(value) when is_float(value), do: value
4109+ def encode_dy(value) when is_integer(value), do: value
4110+ def encode_dy(_), do: {:error, "Unexpected type when encoding VGMarkConfig.dy"}
4111+
30884112 def decode_fill(value) when is_binary(value), do: value
30894113 def decode_fill(_), do: {:error, "Unexpected type when decoding VGMarkConfig.fill"}
30904114
30914115 def encode_fill(value) when is_binary(value), do: value
30924116 def encode_fill(_), do: {:error, "Unexpected type when encoding VGMarkConfig.fill"}
30934117
4118+ def decode_fill_opacity(value) when is_float(value) and value >= 0 and value <= 1, do: value
4119+ def decode_fill_opacity(value) when is_integer(value) and value >= 0 and value <= 1, do: value
4120+ def decode_fill_opacity(_), do: {:error, "Unexpected type when decoding VGMarkConfig.fill_opacity"}
4121+
4122+ def encode_fill_opacity(value) when is_float(value), do: value
4123+ def encode_fill_opacity(value) when is_integer(value), do: value
4124+ def encode_fill_opacity(_), do: {:error, "Unexpected type when encoding VGMarkConfig.fill_opacity"}
4125+
30944126 def decode_font(value) when is_binary(value), do: value
30954127 def decode_font(_), do: {:error, "Unexpected type when decoding VGMarkConfig.font"}
30964128
30974129 def encode_font(value) when is_binary(value), do: value
30984130 def encode_font(_), do: {:error, "Unexpected type when encoding VGMarkConfig.font"}
30994131
4132+ def decode_font_size(value) when is_float(value) and value >= 0, do: value
4133+ def decode_font_size(value) when is_integer(value) and value >= 0, do: value
4134+ def decode_font_size(_), do: {:error, "Unexpected type when decoding VGMarkConfig.font_size"}
4135+
4136+ def encode_font_size(value) when is_float(value), do: value
4137+ def encode_font_size(value) when is_integer(value), do: value
4138+ def encode_font_size(_), do: {:error, "Unexpected type when encoding VGMarkConfig.font_size"}
4139+
31004140 def decode_font_weight(value) when is_binary(value), do: FontWeight.decode(value)
3101- def decode_font_weight(value) when is_float(value), do: value
3102- def decode_font_weight(value) when is_integer(value), do: value
4141+ def decode_font_weight(value) when is_float(value) and value >= 100 and value <= 900, do: value
4142+ def decode_font_weight(value) when is_integer(value) and value >= 100 and value <= 900, do: value
31034143 def decode_font_weight(value) when is_nil(value), do: value
31044144 def decode_font_weight(_), do: {:error, "Unexpected type when decoding VGMarkConfig.font_weight"}
31054145
@@ -3115,54 +4155,126 @@ defmodule VGMarkConfig do
31154155 def encode_href(value) when is_binary(value), do: value
31164156 def encode_href(_), do: {:error, "Unexpected type when encoding VGMarkConfig.href"}
31174157
4158+ def decode_limit(value) when is_float(value), do: value
4159+ def decode_limit(value) when is_integer(value), do: value
4160+ def decode_limit(_), do: {:error, "Unexpected type when decoding VGMarkConfig.limit"}
4161+
4162+ def encode_limit(value) when is_float(value), do: value
4163+ def encode_limit(value) when is_integer(value), do: value
4164+ def encode_limit(_), do: {:error, "Unexpected type when encoding VGMarkConfig.limit"}
4165+
4166+ def decode_opacity(value) when is_float(value) and value >= 0 and value <= 1, do: value
4167+ def decode_opacity(value) when is_integer(value) and value >= 0 and value <= 1, do: value
4168+ def decode_opacity(_), do: {:error, "Unexpected type when decoding VGMarkConfig.opacity"}
4169+
4170+ def encode_opacity(value) when is_float(value), do: value
4171+ def encode_opacity(value) when is_integer(value), do: value
4172+ def encode_opacity(_), do: {:error, "Unexpected type when encoding VGMarkConfig.opacity"}
4173+
4174+ def decode_radius(value) when is_float(value) and value >= 0, do: value
4175+ def decode_radius(value) when is_integer(value) and value >= 0, do: value
4176+ def decode_radius(_), do: {:error, "Unexpected type when decoding VGMarkConfig.radius"}
4177+
4178+ def encode_radius(value) when is_float(value), do: value
4179+ def encode_radius(value) when is_integer(value), do: value
4180+ def encode_radius(_), do: {:error, "Unexpected type when encoding VGMarkConfig.radius"}
4181+
31184182 def decode_shape(value) when is_binary(value), do: value
31194183 def decode_shape(_), do: {:error, "Unexpected type when decoding VGMarkConfig.shape"}
31204184
31214185 def encode_shape(value) when is_binary(value), do: value
31224186 def encode_shape(_), do: {:error, "Unexpected type when encoding VGMarkConfig.shape"}
31234187
4188+ def decode_size(value) when is_float(value) and value >= 0, do: value
4189+ def decode_size(value) when is_integer(value) and value >= 0, do: value
4190+ def decode_size(_), do: {:error, "Unexpected type when decoding VGMarkConfig.size"}
4191+
4192+ def encode_size(value) when is_float(value), do: value
4193+ def encode_size(value) when is_integer(value), do: value
4194+ def encode_size(_), do: {:error, "Unexpected type when encoding VGMarkConfig.size"}
4195+
31244196 def decode_stroke(value) when is_binary(value), do: value
31254197 def decode_stroke(_), do: {:error, "Unexpected type when decoding VGMarkConfig.stroke"}
31264198
31274199 def encode_stroke(value) when is_binary(value), do: value
31284200 def encode_stroke(_), do: {:error, "Unexpected type when encoding VGMarkConfig.stroke"}
31294201
4202+ def decode_stroke_dash_offset(value) when is_float(value), do: value
4203+ def decode_stroke_dash_offset(value) when is_integer(value), do: value
4204+ def decode_stroke_dash_offset(_), do: {:error, "Unexpected type when decoding VGMarkConfig.stroke_dash_offset"}
4205+
4206+ def encode_stroke_dash_offset(value) when is_float(value), do: value
4207+ def encode_stroke_dash_offset(value) when is_integer(value), do: value
4208+ def encode_stroke_dash_offset(_), do: {:error, "Unexpected type when encoding VGMarkConfig.stroke_dash_offset"}
4209+
4210+ def decode_stroke_opacity(value) when is_float(value) and value >= 0 and value <= 1, do: value
4211+ def decode_stroke_opacity(value) when is_integer(value) and value >= 0 and value <= 1, do: value
4212+ def decode_stroke_opacity(_), do: {:error, "Unexpected type when decoding VGMarkConfig.stroke_opacity"}
4213+
4214+ def encode_stroke_opacity(value) when is_float(value), do: value
4215+ def encode_stroke_opacity(value) when is_integer(value), do: value
4216+ def encode_stroke_opacity(_), do: {:error, "Unexpected type when encoding VGMarkConfig.stroke_opacity"}
4217+
4218+ def decode_stroke_width(value) when is_float(value) and value >= 0, do: value
4219+ def decode_stroke_width(value) when is_integer(value) and value >= 0, do: value
4220+ def decode_stroke_width(_), do: {:error, "Unexpected type when decoding VGMarkConfig.stroke_width"}
4221+
4222+ def encode_stroke_width(value) when is_float(value), do: value
4223+ def encode_stroke_width(value) when is_integer(value), do: value
4224+ def encode_stroke_width(_), do: {:error, "Unexpected type when encoding VGMarkConfig.stroke_width"}
4225+
4226+ def decode_tension(value) when is_float(value) and value >= 0 and value <= 1, do: value
4227+ def decode_tension(value) when is_integer(value) and value >= 0 and value <= 1, do: value
4228+ def decode_tension(_), do: {:error, "Unexpected type when decoding VGMarkConfig.tension"}
4229+
4230+ def encode_tension(value) when is_float(value), do: value
4231+ def encode_tension(value) when is_integer(value), do: value
4232+ def encode_tension(_), do: {:error, "Unexpected type when encoding VGMarkConfig.tension"}
4233+
31304234 def decode_text(value) when is_binary(value), do: value
31314235 def decode_text(_), do: {:error, "Unexpected type when decoding VGMarkConfig.text"}
31324236
31334237 def encode_text(value) when is_binary(value), do: value
31344238 def encode_text(_), do: {:error, "Unexpected type when encoding VGMarkConfig.text"}
31354239
4240+ def decode_theta(value) when is_float(value), do: value
4241+ def decode_theta(value) when is_integer(value), do: value
4242+ def decode_theta(_), do: {:error, "Unexpected type when decoding VGMarkConfig.theta"}
4243+
4244+ def encode_theta(value) when is_float(value), do: value
4245+ def encode_theta(value) when is_integer(value), do: value
4246+ def encode_theta(_), do: {:error, "Unexpected type when encoding VGMarkConfig.theta"}
4247+
31364248 def from_map(m) do
31374249 %VGMarkConfig{
31384250 align: m["align"] && HorizontalAlign.decode(m["align"]),
3139- angle: m["angle"],
4251+ angle: m["angle"] && decode_angle(m["angle"]),
31404252 baseline: m["baseline"] && VerticalAlign.decode(m["baseline"]),
31414253 cursor: m["cursor"] && Cursor.decode(m["cursor"]),
3142- dx: m["dx"],
3143- dy: m["dy"],
4254+ dx: m["dx"] && decode_dx(m["dx"]),
4255+ dy: m["dy"] && decode_dy(m["dy"]),
31444256 fill: m["fill"] && decode_fill(m["fill"]),
3145- fill_opacity: m["fillOpacity"],
4257+ fill_opacity: m["fillOpacity"] && decode_fill_opacity(m["fillOpacity"]),
31464258 font: m["font"] && decode_font(m["font"]),
3147- font_size: m["fontSize"],
4259+ font_size: m["fontSize"] && decode_font_size(m["fontSize"]),
31484260 font_style: m["fontStyle"] && FontStyle.decode(m["fontStyle"]),
31494261 font_weight: decode_font_weight(m["fontWeight"]),
31504262 href: m["href"] && decode_href(m["href"]),
31514263 interpolate: m["interpolate"] && Interpolate.decode(m["interpolate"]),
3152- limit: m["limit"],
3153- opacity: m["opacity"],
4264+ limit: m["limit"] && decode_limit(m["limit"]),
4265+ opacity: m["opacity"] && decode_opacity(m["opacity"]),
31544266 orient: m["orient"] && Orient.decode(m["orient"]),
3155- radius: m["radius"],
4267+ radius: m["radius"] && decode_radius(m["radius"]),
31564268 shape: m["shape"] && decode_shape(m["shape"]),
3157- size: m["size"],
4269+ size: m["size"] && decode_size(m["size"]),
31584270 stroke: m["stroke"] && decode_stroke(m["stroke"]),
31594271 stroke_dash: m["strokeDash"],
3160- stroke_dash_offset: m["strokeDashOffset"],
3161- stroke_opacity: m["strokeOpacity"],
3162- stroke_width: m["strokeWidth"],
3163- tension: m["tension"],
4272+ stroke_dash_offset: m["strokeDashOffset"] && decode_stroke_dash_offset(m["strokeDashOffset"]),
4273+ stroke_opacity: m["strokeOpacity"] && decode_stroke_opacity(m["strokeOpacity"]),
4274+ stroke_width: m["strokeWidth"] && decode_stroke_width(m["strokeWidth"]),
4275+ tension: m["tension"] && decode_tension(m["tension"]),
31644276 text: m["text"] && decode_text(m["text"]),
3165- theta: m["theta"],
4277+ theta: m["theta"] && decode_theta(m["theta"]),
31664278 }
31674279 end
31684280
@@ -3284,27 +4396,67 @@ defmodule TextConfig do
32844396 theta: float() | nil
32854397 }
32864398
4399+ def decode_angle(value) when is_float(value) and value >= 0 and value <= 360, do: value
4400+ def decode_angle(value) when is_integer(value) and value >= 0 and value <= 360, do: value
4401+ def decode_angle(_), do: {:error, "Unexpected type when decoding TextConfig.angle"}
4402+
4403+ def encode_angle(value) when is_float(value), do: value
4404+ def encode_angle(value) when is_integer(value), do: value
4405+ def encode_angle(_), do: {:error, "Unexpected type when encoding TextConfig.angle"}
4406+
32874407 def decode_color(value) when is_binary(value), do: value
32884408 def decode_color(_), do: {:error, "Unexpected type when decoding TextConfig.color"}
32894409
32904410 def encode_color(value) when is_binary(value), do: value
32914411 def encode_color(_), do: {:error, "Unexpected type when encoding TextConfig.color"}
32924412
4413+ def decode_dx(value) when is_float(value), do: value
4414+ def decode_dx(value) when is_integer(value), do: value
4415+ def decode_dx(_), do: {:error, "Unexpected type when decoding TextConfig.dx"}
4416+
4417+ def encode_dx(value) when is_float(value), do: value
4418+ def encode_dx(value) when is_integer(value), do: value
4419+ def encode_dx(_), do: {:error, "Unexpected type when encoding TextConfig.dx"}
4420+
4421+ def decode_dy(value) when is_float(value), do: value
4422+ def decode_dy(value) when is_integer(value), do: value
4423+ def decode_dy(_), do: {:error, "Unexpected type when decoding TextConfig.dy"}
4424+
4425+ def encode_dy(value) when is_float(value), do: value
4426+ def encode_dy(value) when is_integer(value), do: value
4427+ def encode_dy(_), do: {:error, "Unexpected type when encoding TextConfig.dy"}
4428+
32934429 def decode_fill(value) when is_binary(value), do: value
32944430 def decode_fill(_), do: {:error, "Unexpected type when decoding TextConfig.fill"}
32954431
32964432 def encode_fill(value) when is_binary(value), do: value
32974433 def encode_fill(_), do: {:error, "Unexpected type when encoding TextConfig.fill"}
32984434
4435+ def decode_fill_opacity(value) when is_float(value) and value >= 0 and value <= 1, do: value
4436+ def decode_fill_opacity(value) when is_integer(value) and value >= 0 and value <= 1, do: value
4437+ def decode_fill_opacity(_), do: {:error, "Unexpected type when decoding TextConfig.fill_opacity"}
4438+
4439+ def encode_fill_opacity(value) when is_float(value), do: value
4440+ def encode_fill_opacity(value) when is_integer(value), do: value
4441+ def encode_fill_opacity(_), do: {:error, "Unexpected type when encoding TextConfig.fill_opacity"}
4442+
32994443 def decode_font(value) when is_binary(value), do: value
33004444 def decode_font(_), do: {:error, "Unexpected type when decoding TextConfig.font"}
33014445
33024446 def encode_font(value) when is_binary(value), do: value
33034447 def encode_font(_), do: {:error, "Unexpected type when encoding TextConfig.font"}
33044448
4449+ def decode_font_size(value) when is_float(value) and value >= 0, do: value
4450+ def decode_font_size(value) when is_integer(value) and value >= 0, do: value
4451+ def decode_font_size(_), do: {:error, "Unexpected type when decoding TextConfig.font_size"}
4452+
4453+ def encode_font_size(value) when is_float(value), do: value
4454+ def encode_font_size(value) when is_integer(value), do: value
4455+ def encode_font_size(_), do: {:error, "Unexpected type when encoding TextConfig.font_size"}
4456+
33054457 def decode_font_weight(value) when is_binary(value), do: FontWeight.decode(value)
3306- def decode_font_weight(value) when is_float(value), do: value
3307- def decode_font_weight(value) when is_integer(value), do: value
4458+ def decode_font_weight(value) when is_float(value) and value >= 100 and value <= 900, do: value
4459+ def decode_font_weight(value) when is_integer(value) and value >= 100 and value <= 900, do: value
33084460 def decode_font_weight(value) when is_nil(value), do: value
33094461 def decode_font_weight(_), do: {:error, "Unexpected type when decoding TextConfig.font_weight"}
33104462
@@ -3320,57 +4472,129 @@ defmodule TextConfig do
33204472 def encode_href(value) when is_binary(value), do: value
33214473 def encode_href(_), do: {:error, "Unexpected type when encoding TextConfig.href"}
33224474
4475+ def decode_limit(value) when is_float(value), do: value
4476+ def decode_limit(value) when is_integer(value), do: value
4477+ def decode_limit(_), do: {:error, "Unexpected type when decoding TextConfig.limit"}
4478+
4479+ def encode_limit(value) when is_float(value), do: value
4480+ def encode_limit(value) when is_integer(value), do: value
4481+ def encode_limit(_), do: {:error, "Unexpected type when encoding TextConfig.limit"}
4482+
4483+ def decode_opacity(value) when is_float(value) and value >= 0 and value <= 1, do: value
4484+ def decode_opacity(value) when is_integer(value) and value >= 0 and value <= 1, do: value
4485+ def decode_opacity(_), do: {:error, "Unexpected type when decoding TextConfig.opacity"}
4486+
4487+ def encode_opacity(value) when is_float(value), do: value
4488+ def encode_opacity(value) when is_integer(value), do: value
4489+ def encode_opacity(_), do: {:error, "Unexpected type when encoding TextConfig.opacity"}
4490+
4491+ def decode_radius(value) when is_float(value) and value >= 0, do: value
4492+ def decode_radius(value) when is_integer(value) and value >= 0, do: value
4493+ def decode_radius(_), do: {:error, "Unexpected type when decoding TextConfig.radius"}
4494+
4495+ def encode_radius(value) when is_float(value), do: value
4496+ def encode_radius(value) when is_integer(value), do: value
4497+ def encode_radius(_), do: {:error, "Unexpected type when encoding TextConfig.radius"}
4498+
33234499 def decode_shape(value) when is_binary(value), do: value
33244500 def decode_shape(_), do: {:error, "Unexpected type when decoding TextConfig.shape"}
33254501
33264502 def encode_shape(value) when is_binary(value), do: value
33274503 def encode_shape(_), do: {:error, "Unexpected type when encoding TextConfig.shape"}
33284504
4505+ def decode_size(value) when is_float(value) and value >= 0, do: value
4506+ def decode_size(value) when is_integer(value) and value >= 0, do: value
4507+ def decode_size(_), do: {:error, "Unexpected type when decoding TextConfig.size"}
4508+
4509+ def encode_size(value) when is_float(value), do: value
4510+ def encode_size(value) when is_integer(value), do: value
4511+ def encode_size(_), do: {:error, "Unexpected type when encoding TextConfig.size"}
4512+
33294513 def decode_stroke(value) when is_binary(value), do: value
33304514 def decode_stroke(_), do: {:error, "Unexpected type when decoding TextConfig.stroke"}
33314515
33324516 def encode_stroke(value) when is_binary(value), do: value
33334517 def encode_stroke(_), do: {:error, "Unexpected type when encoding TextConfig.stroke"}
33344518
4519+ def decode_stroke_dash_offset(value) when is_float(value), do: value
4520+ def decode_stroke_dash_offset(value) when is_integer(value), do: value
4521+ def decode_stroke_dash_offset(_), do: {:error, "Unexpected type when decoding TextConfig.stroke_dash_offset"}
4522+
4523+ def encode_stroke_dash_offset(value) when is_float(value), do: value
4524+ def encode_stroke_dash_offset(value) when is_integer(value), do: value
4525+ def encode_stroke_dash_offset(_), do: {:error, "Unexpected type when encoding TextConfig.stroke_dash_offset"}
4526+
4527+ def decode_stroke_opacity(value) when is_float(value) and value >= 0 and value <= 1, do: value
4528+ def decode_stroke_opacity(value) when is_integer(value) and value >= 0 and value <= 1, do: value
4529+ def decode_stroke_opacity(_), do: {:error, "Unexpected type when decoding TextConfig.stroke_opacity"}
4530+
4531+ def encode_stroke_opacity(value) when is_float(value), do: value
4532+ def encode_stroke_opacity(value) when is_integer(value), do: value
4533+ def encode_stroke_opacity(_), do: {:error, "Unexpected type when encoding TextConfig.stroke_opacity"}
4534+
4535+ def decode_stroke_width(value) when is_float(value) and value >= 0, do: value
4536+ def decode_stroke_width(value) when is_integer(value) and value >= 0, do: value
4537+ def decode_stroke_width(_), do: {:error, "Unexpected type when decoding TextConfig.stroke_width"}
4538+
4539+ def encode_stroke_width(value) when is_float(value), do: value
4540+ def encode_stroke_width(value) when is_integer(value), do: value
4541+ def encode_stroke_width(_), do: {:error, "Unexpected type when encoding TextConfig.stroke_width"}
4542+
4543+ def decode_tension(value) when is_float(value) and value >= 0 and value <= 1, do: value
4544+ def decode_tension(value) when is_integer(value) and value >= 0 and value <= 1, do: value
4545+ def decode_tension(_), do: {:error, "Unexpected type when decoding TextConfig.tension"}
4546+
4547+ def encode_tension(value) when is_float(value), do: value
4548+ def encode_tension(value) when is_integer(value), do: value
4549+ def encode_tension(_), do: {:error, "Unexpected type when encoding TextConfig.tension"}
4550+
33354551 def decode_text(value) when is_binary(value), do: value
33364552 def decode_text(_), do: {:error, "Unexpected type when decoding TextConfig.text"}
33374553
33384554 def encode_text(value) when is_binary(value), do: value
33394555 def encode_text(_), do: {:error, "Unexpected type when encoding TextConfig.text"}
33404556
4557+ def decode_theta(value) when is_float(value), do: value
4558+ def decode_theta(value) when is_integer(value), do: value
4559+ def decode_theta(_), do: {:error, "Unexpected type when decoding TextConfig.theta"}
4560+
4561+ def encode_theta(value) when is_float(value), do: value
4562+ def encode_theta(value) when is_integer(value), do: value
4563+ def encode_theta(_), do: {:error, "Unexpected type when encoding TextConfig.theta"}
4564+
33414565 def from_map(m) do
33424566 %TextConfig{
33434567 align: m["align"] && HorizontalAlign.decode(m["align"]),
3344- angle: m["angle"],
4568+ angle: m["angle"] && decode_angle(m["angle"]),
33454569 baseline: m["baseline"] && VerticalAlign.decode(m["baseline"]),
33464570 color: m["color"] && decode_color(m["color"]),
33474571 cursor: m["cursor"] && Cursor.decode(m["cursor"]),
3348- dx: m["dx"],
3349- dy: m["dy"],
4572+ dx: m["dx"] && decode_dx(m["dx"]),
4573+ dy: m["dy"] && decode_dy(m["dy"]),
33504574 fill: m["fill"] && decode_fill(m["fill"]),
33514575 filled: m["filled"],
3352- fill_opacity: m["fillOpacity"],
4576+ fill_opacity: m["fillOpacity"] && decode_fill_opacity(m["fillOpacity"]),
33534577 font: m["font"] && decode_font(m["font"]),
3354- font_size: m["fontSize"],
4578+ font_size: m["fontSize"] && decode_font_size(m["fontSize"]),
33554579 font_style: m["fontStyle"] && FontStyle.decode(m["fontStyle"]),
33564580 font_weight: decode_font_weight(m["fontWeight"]),
33574581 href: m["href"] && decode_href(m["href"]),
33584582 interpolate: m["interpolate"] && Interpolate.decode(m["interpolate"]),
3359- limit: m["limit"],
3360- opacity: m["opacity"],
4583+ limit: m["limit"] && decode_limit(m["limit"]),
4584+ opacity: m["opacity"] && decode_opacity(m["opacity"]),
33614585 orient: m["orient"] && Orient.decode(m["orient"]),
3362- radius: m["radius"],
4586+ radius: m["radius"] && decode_radius(m["radius"]),
33634587 shape: m["shape"] && decode_shape(m["shape"]),
33644588 short_time_labels: m["shortTimeLabels"],
3365- size: m["size"],
4589+ size: m["size"] && decode_size(m["size"]),
33664590 stroke: m["stroke"] && decode_stroke(m["stroke"]),
33674591 stroke_dash: m["strokeDash"],
3368- stroke_dash_offset: m["strokeDashOffset"],
3369- stroke_opacity: m["strokeOpacity"],
3370- stroke_width: m["strokeWidth"],
3371- tension: m["tension"],
4592+ stroke_dash_offset: m["strokeDashOffset"] && decode_stroke_dash_offset(m["strokeDashOffset"]),
4593+ stroke_opacity: m["strokeOpacity"] && decode_stroke_opacity(m["strokeOpacity"]),
4594+ stroke_width: m["strokeWidth"] && decode_stroke_width(m["strokeWidth"]),
4595+ tension: m["tension"] && decode_tension(m["tension"]),
33724596 text: m["text"] && decode_text(m["text"]),
3373- theta: m["theta"],
4597+ theta: m["theta"] && decode_theta(m["theta"]),
33744598 }
33754599 end
33764600
@@ -3497,27 +4721,75 @@ defmodule TickConfig do
34974721 thickness: float() | nil
34984722 }
34994723
4724+ def decode_angle(value) when is_float(value) and value >= 0 and value <= 360, do: value
4725+ def decode_angle(value) when is_integer(value) and value >= 0 and value <= 360, do: value
4726+ def decode_angle(_), do: {:error, "Unexpected type when decoding TickConfig.angle"}
4727+
4728+ def encode_angle(value) when is_float(value), do: value
4729+ def encode_angle(value) when is_integer(value), do: value
4730+ def encode_angle(_), do: {:error, "Unexpected type when encoding TickConfig.angle"}
4731+
4732+ def decode_band_size(value) when is_float(value) and value >= 0, do: value
4733+ def decode_band_size(value) when is_integer(value) and value >= 0, do: value
4734+ def decode_band_size(_), do: {:error, "Unexpected type when decoding TickConfig.band_size"}
4735+
4736+ def encode_band_size(value) when is_float(value), do: value
4737+ def encode_band_size(value) when is_integer(value), do: value
4738+ def encode_band_size(_), do: {:error, "Unexpected type when encoding TickConfig.band_size"}
4739+
35004740 def decode_color(value) when is_binary(value), do: value
35014741 def decode_color(_), do: {:error, "Unexpected type when decoding TickConfig.color"}
35024742
35034743 def encode_color(value) when is_binary(value), do: value
35044744 def encode_color(_), do: {:error, "Unexpected type when encoding TickConfig.color"}
35054745
4746+ def decode_dx(value) when is_float(value), do: value
4747+ def decode_dx(value) when is_integer(value), do: value
4748+ def decode_dx(_), do: {:error, "Unexpected type when decoding TickConfig.dx"}
4749+
4750+ def encode_dx(value) when is_float(value), do: value
4751+ def encode_dx(value) when is_integer(value), do: value
4752+ def encode_dx(_), do: {:error, "Unexpected type when encoding TickConfig.dx"}
4753+
4754+ def decode_dy(value) when is_float(value), do: value
4755+ def decode_dy(value) when is_integer(value), do: value
4756+ def decode_dy(_), do: {:error, "Unexpected type when decoding TickConfig.dy"}
4757+
4758+ def encode_dy(value) when is_float(value), do: value
4759+ def encode_dy(value) when is_integer(value), do: value
4760+ def encode_dy(_), do: {:error, "Unexpected type when encoding TickConfig.dy"}
4761+
35064762 def decode_fill(value) when is_binary(value), do: value
35074763 def decode_fill(_), do: {:error, "Unexpected type when decoding TickConfig.fill"}
35084764
35094765 def encode_fill(value) when is_binary(value), do: value
35104766 def encode_fill(_), do: {:error, "Unexpected type when encoding TickConfig.fill"}
35114767
4768+ def decode_fill_opacity(value) when is_float(value) and value >= 0 and value <= 1, do: value
4769+ def decode_fill_opacity(value) when is_integer(value) and value >= 0 and value <= 1, do: value
4770+ def decode_fill_opacity(_), do: {:error, "Unexpected type when decoding TickConfig.fill_opacity"}
4771+
4772+ def encode_fill_opacity(value) when is_float(value), do: value
4773+ def encode_fill_opacity(value) when is_integer(value), do: value
4774+ def encode_fill_opacity(_), do: {:error, "Unexpected type when encoding TickConfig.fill_opacity"}
4775+
35124776 def decode_font(value) when is_binary(value), do: value
35134777 def decode_font(_), do: {:error, "Unexpected type when decoding TickConfig.font"}
35144778
35154779 def encode_font(value) when is_binary(value), do: value
35164780 def encode_font(_), do: {:error, "Unexpected type when encoding TickConfig.font"}
35174781
4782+ def decode_font_size(value) when is_float(value) and value >= 0, do: value
4783+ def decode_font_size(value) when is_integer(value) and value >= 0, do: value
4784+ def decode_font_size(_), do: {:error, "Unexpected type when decoding TickConfig.font_size"}
4785+
4786+ def encode_font_size(value) when is_float(value), do: value
4787+ def encode_font_size(value) when is_integer(value), do: value
4788+ def encode_font_size(_), do: {:error, "Unexpected type when encoding TickConfig.font_size"}
4789+
35184790 def decode_font_weight(value) when is_binary(value), do: FontWeight.decode(value)
3519- def decode_font_weight(value) when is_float(value), do: value
3520- def decode_font_weight(value) when is_integer(value), do: value
4791+ def decode_font_weight(value) when is_float(value) and value >= 100 and value <= 900, do: value
4792+ def decode_font_weight(value) when is_integer(value) and value >= 100 and value <= 900, do: value
35214793 def decode_font_weight(value) when is_nil(value), do: value
35224794 def decode_font_weight(_), do: {:error, "Unexpected type when decoding TickConfig.font_weight"}
35234795
@@ -3533,58 +4805,138 @@ defmodule TickConfig do
35334805 def encode_href(value) when is_binary(value), do: value
35344806 def encode_href(_), do: {:error, "Unexpected type when encoding TickConfig.href"}
35354807
4808+ def decode_limit(value) when is_float(value), do: value
4809+ def decode_limit(value) when is_integer(value), do: value
4810+ def decode_limit(_), do: {:error, "Unexpected type when decoding TickConfig.limit"}
4811+
4812+ def encode_limit(value) when is_float(value), do: value
4813+ def encode_limit(value) when is_integer(value), do: value
4814+ def encode_limit(_), do: {:error, "Unexpected type when encoding TickConfig.limit"}
4815+
4816+ def decode_opacity(value) when is_float(value) and value >= 0 and value <= 1, do: value
4817+ def decode_opacity(value) when is_integer(value) and value >= 0 and value <= 1, do: value
4818+ def decode_opacity(_), do: {:error, "Unexpected type when decoding TickConfig.opacity"}
4819+
4820+ def encode_opacity(value) when is_float(value), do: value
4821+ def encode_opacity(value) when is_integer(value), do: value
4822+ def encode_opacity(_), do: {:error, "Unexpected type when encoding TickConfig.opacity"}
4823+
4824+ def decode_radius(value) when is_float(value) and value >= 0, do: value
4825+ def decode_radius(value) when is_integer(value) and value >= 0, do: value
4826+ def decode_radius(_), do: {:error, "Unexpected type when decoding TickConfig.radius"}
4827+
4828+ def encode_radius(value) when is_float(value), do: value
4829+ def encode_radius(value) when is_integer(value), do: value
4830+ def encode_radius(_), do: {:error, "Unexpected type when encoding TickConfig.radius"}
4831+
35364832 def decode_shape(value) when is_binary(value), do: value
35374833 def decode_shape(_), do: {:error, "Unexpected type when decoding TickConfig.shape"}
35384834
35394835 def encode_shape(value) when is_binary(value), do: value
35404836 def encode_shape(_), do: {:error, "Unexpected type when encoding TickConfig.shape"}
35414837
4838+ def decode_size(value) when is_float(value) and value >= 0, do: value
4839+ def decode_size(value) when is_integer(value) and value >= 0, do: value
4840+ def decode_size(_), do: {:error, "Unexpected type when decoding TickConfig.size"}
4841+
4842+ def encode_size(value) when is_float(value), do: value
4843+ def encode_size(value) when is_integer(value), do: value
4844+ def encode_size(_), do: {:error, "Unexpected type when encoding TickConfig.size"}
4845+
35424846 def decode_stroke(value) when is_binary(value), do: value
35434847 def decode_stroke(_), do: {:error, "Unexpected type when decoding TickConfig.stroke"}
35444848
35454849 def encode_stroke(value) when is_binary(value), do: value
35464850 def encode_stroke(_), do: {:error, "Unexpected type when encoding TickConfig.stroke"}
35474851
4852+ def decode_stroke_dash_offset(value) when is_float(value), do: value
4853+ def decode_stroke_dash_offset(value) when is_integer(value), do: value
4854+ def decode_stroke_dash_offset(_), do: {:error, "Unexpected type when decoding TickConfig.stroke_dash_offset"}
4855+
4856+ def encode_stroke_dash_offset(value) when is_float(value), do: value
4857+ def encode_stroke_dash_offset(value) when is_integer(value), do: value
4858+ def encode_stroke_dash_offset(_), do: {:error, "Unexpected type when encoding TickConfig.stroke_dash_offset"}
4859+
4860+ def decode_stroke_opacity(value) when is_float(value) and value >= 0 and value <= 1, do: value
4861+ def decode_stroke_opacity(value) when is_integer(value) and value >= 0 and value <= 1, do: value
4862+ def decode_stroke_opacity(_), do: {:error, "Unexpected type when decoding TickConfig.stroke_opacity"}
4863+
4864+ def encode_stroke_opacity(value) when is_float(value), do: value
4865+ def encode_stroke_opacity(value) when is_integer(value), do: value
4866+ def encode_stroke_opacity(_), do: {:error, "Unexpected type when encoding TickConfig.stroke_opacity"}
4867+
4868+ def decode_stroke_width(value) when is_float(value) and value >= 0, do: value
4869+ def decode_stroke_width(value) when is_integer(value) and value >= 0, do: value
4870+ def decode_stroke_width(_), do: {:error, "Unexpected type when decoding TickConfig.stroke_width"}
4871+
4872+ def encode_stroke_width(value) when is_float(value), do: value
4873+ def encode_stroke_width(value) when is_integer(value), do: value
4874+ def encode_stroke_width(_), do: {:error, "Unexpected type when encoding TickConfig.stroke_width"}
4875+
4876+ def decode_tension(value) when is_float(value) and value >= 0 and value <= 1, do: value
4877+ def decode_tension(value) when is_integer(value) and value >= 0 and value <= 1, do: value
4878+ def decode_tension(_), do: {:error, "Unexpected type when decoding TickConfig.tension"}
4879+
4880+ def encode_tension(value) when is_float(value), do: value
4881+ def encode_tension(value) when is_integer(value), do: value
4882+ def encode_tension(_), do: {:error, "Unexpected type when encoding TickConfig.tension"}
4883+
35484884 def decode_text(value) when is_binary(value), do: value
35494885 def decode_text(_), do: {:error, "Unexpected type when decoding TickConfig.text"}
35504886
35514887 def encode_text(value) when is_binary(value), do: value
35524888 def encode_text(_), do: {:error, "Unexpected type when encoding TickConfig.text"}
35534889
4890+ def decode_theta(value) when is_float(value), do: value
4891+ def decode_theta(value) when is_integer(value), do: value
4892+ def decode_theta(_), do: {:error, "Unexpected type when decoding TickConfig.theta"}
4893+
4894+ def encode_theta(value) when is_float(value), do: value
4895+ def encode_theta(value) when is_integer(value), do: value
4896+ def encode_theta(_), do: {:error, "Unexpected type when encoding TickConfig.theta"}
4897+
4898+ def decode_thickness(value) when is_float(value) and value >= 0, do: value
4899+ def decode_thickness(value) when is_integer(value) and value >= 0, do: value
4900+ def decode_thickness(_), do: {:error, "Unexpected type when decoding TickConfig.thickness"}
4901+
4902+ def encode_thickness(value) when is_float(value), do: value
4903+ def encode_thickness(value) when is_integer(value), do: value
4904+ def encode_thickness(_), do: {:error, "Unexpected type when encoding TickConfig.thickness"}
4905+
35544906 def from_map(m) do
35554907 %TickConfig{
35564908 align: m["align"] && HorizontalAlign.decode(m["align"]),
3557- angle: m["angle"],
3558- band_size: m["bandSize"],
4909+ angle: m["angle"] && decode_angle(m["angle"]),
4910+ band_size: m["bandSize"] && decode_band_size(m["bandSize"]),
35594911 baseline: m["baseline"] && VerticalAlign.decode(m["baseline"]),
35604912 color: m["color"] && decode_color(m["color"]),
35614913 cursor: m["cursor"] && Cursor.decode(m["cursor"]),
3562- dx: m["dx"],
3563- dy: m["dy"],
4914+ dx: m["dx"] && decode_dx(m["dx"]),
4915+ dy: m["dy"] && decode_dy(m["dy"]),
35644916 fill: m["fill"] && decode_fill(m["fill"]),
35654917 filled: m["filled"],
3566- fill_opacity: m["fillOpacity"],
4918+ fill_opacity: m["fillOpacity"] && decode_fill_opacity(m["fillOpacity"]),
35674919 font: m["font"] && decode_font(m["font"]),
3568- font_size: m["fontSize"],
4920+ font_size: m["fontSize"] && decode_font_size(m["fontSize"]),
35694921 font_style: m["fontStyle"] && FontStyle.decode(m["fontStyle"]),
35704922 font_weight: decode_font_weight(m["fontWeight"]),
35714923 href: m["href"] && decode_href(m["href"]),
35724924 interpolate: m["interpolate"] && Interpolate.decode(m["interpolate"]),
3573- limit: m["limit"],
3574- opacity: m["opacity"],
4925+ limit: m["limit"] && decode_limit(m["limit"]),
4926+ opacity: m["opacity"] && decode_opacity(m["opacity"]),
35754927 orient: m["orient"] && Orient.decode(m["orient"]),
3576- radius: m["radius"],
4928+ radius: m["radius"] && decode_radius(m["radius"]),
35774929 shape: m["shape"] && decode_shape(m["shape"]),
3578- size: m["size"],
4930+ size: m["size"] && decode_size(m["size"]),
35794931 stroke: m["stroke"] && decode_stroke(m["stroke"]),
35804932 stroke_dash: m["strokeDash"],
3581- stroke_dash_offset: m["strokeDashOffset"],
3582- stroke_opacity: m["strokeOpacity"],
3583- stroke_width: m["strokeWidth"],
3584- tension: m["tension"],
4933+ stroke_dash_offset: m["strokeDashOffset"] && decode_stroke_dash_offset(m["strokeDashOffset"]),
4934+ stroke_opacity: m["strokeOpacity"] && decode_stroke_opacity(m["strokeOpacity"]),
4935+ stroke_width: m["strokeWidth"] && decode_stroke_width(m["strokeWidth"]),
4936+ tension: m["tension"] && decode_tension(m["tension"]),
35854937 text: m["text"] && decode_text(m["text"]),
3586- theta: m["theta"],
3587- thickness: m["thickness"],
4938+ theta: m["theta"] && decode_theta(m["theta"]),
4939+ thickness: m["thickness"] && decode_thickness(m["thickness"]),
35884940 }
35894941 end
35904942
@@ -3789,6 +5141,14 @@ defmodule VGTitleConfig do
37895141 orient: TitleOrient.t() | nil
37905142 }
37915143
5144+ def decode_angle(value) when is_float(value), do: value
5145+ def decode_angle(value) when is_integer(value), do: value
5146+ def decode_angle(_), do: {:error, "Unexpected type when decoding VGTitleConfig.angle"}
5147+
5148+ def encode_angle(value) when is_float(value), do: value
5149+ def encode_angle(value) when is_integer(value), do: value
5150+ def encode_angle(_), do: {:error, "Unexpected type when encoding VGTitleConfig.angle"}
5151+
37925152 def decode_color(value) when is_binary(value), do: value
37935153 def decode_color(_), do: {:error, "Unexpected type when decoding VGTitleConfig.color"}
37945154
@@ -3801,9 +5161,17 @@ defmodule VGTitleConfig do
38015161 def encode_font(value) when is_binary(value), do: value
38025162 def encode_font(_), do: {:error, "Unexpected type when encoding VGTitleConfig.font"}
38035163
5164+ def decode_font_size(value) when is_float(value) and value >= 0, do: value
5165+ def decode_font_size(value) when is_integer(value) and value >= 0, do: value
5166+ def decode_font_size(_), do: {:error, "Unexpected type when decoding VGTitleConfig.font_size"}
5167+
5168+ def encode_font_size(value) when is_float(value), do: value
5169+ def encode_font_size(value) when is_integer(value), do: value
5170+ def encode_font_size(_), do: {:error, "Unexpected type when encoding VGTitleConfig.font_size"}
5171+
38045172 def decode_font_weight(value) when is_binary(value), do: FontWeight.decode(value)
3805- def decode_font_weight(value) when is_float(value), do: value
3806- def decode_font_weight(value) when is_integer(value), do: value
5173+ def decode_font_weight(value) when is_float(value) and value >= 100 and value <= 900, do: value
5174+ def decode_font_weight(value) when is_integer(value) and value >= 100 and value <= 900, do: value
38075175 def decode_font_weight(value) when is_nil(value), do: value
38085176 def decode_font_weight(_), do: {:error, "Unexpected type when decoding VGTitleConfig.font_weight"}
38095177
@@ -3813,17 +5181,33 @@ defmodule VGTitleConfig do
38135181 def encode_font_weight(value) when is_nil(value), do: value
38145182 def encode_font_weight(_), do: {:error, "Unexpected type when encoding VGTitleConfig.font_weight"}
38155183
5184+ def decode_limit(value) when is_float(value) and value >= 0, do: value
5185+ def decode_limit(value) when is_integer(value) and value >= 0, do: value
5186+ def decode_limit(_), do: {:error, "Unexpected type when decoding VGTitleConfig.limit"}
5187+
5188+ def encode_limit(value) when is_float(value), do: value
5189+ def encode_limit(value) when is_integer(value), do: value
5190+ def encode_limit(_), do: {:error, "Unexpected type when encoding VGTitleConfig.limit"}
5191+
5192+ def decode_offset(value) when is_float(value), do: value
5193+ def decode_offset(value) when is_integer(value), do: value
5194+ def decode_offset(_), do: {:error, "Unexpected type when decoding VGTitleConfig.offset"}
5195+
5196+ def encode_offset(value) when is_float(value), do: value
5197+ def encode_offset(value) when is_integer(value), do: value
5198+ def encode_offset(_), do: {:error, "Unexpected type when encoding VGTitleConfig.offset"}
5199+
38165200 def from_map(m) do
38175201 %VGTitleConfig{
38185202 anchor: m["anchor"] && Anchor.decode(m["anchor"]),
3819- angle: m["angle"],
5203+ angle: m["angle"] && decode_angle(m["angle"]),
38205204 baseline: m["baseline"] && VerticalAlign.decode(m["baseline"]),
38215205 color: m["color"] && decode_color(m["color"]),
38225206 font: m["font"] && decode_font(m["font"]),
3823- font_size: m["fontSize"],
5207+ font_size: m["fontSize"] && decode_font_size(m["fontSize"]),
38245208 font_weight: decode_font_weight(m["fontWeight"]),
3825- limit: m["limit"],
3826- offset: m["offset"],
5209+ limit: m["limit"] && decode_limit(m["limit"]),
5210+ offset: m["offset"] && decode_offset(m["offset"]),
38275211 orient: m["orient"] && TitleOrient.decode(m["orient"]),
38285212 }
38295213 end
@@ -3892,24 +5276,72 @@ defmodule ViewConfig do
38925276 def encode_fill(value) when is_binary(value), do: value
38935277 def encode_fill(_), do: {:error, "Unexpected type when encoding ViewConfig.fill"}
38945278
5279+ def decode_fill_opacity(value) when is_float(value), do: value
5280+ def decode_fill_opacity(value) when is_integer(value), do: value
5281+ def decode_fill_opacity(_), do: {:error, "Unexpected type when decoding ViewConfig.fill_opacity"}
5282+
5283+ def encode_fill_opacity(value) when is_float(value), do: value
5284+ def encode_fill_opacity(value) when is_integer(value), do: value
5285+ def encode_fill_opacity(_), do: {:error, "Unexpected type when encoding ViewConfig.fill_opacity"}
5286+
5287+ def decode_height(value) when is_float(value), do: value
5288+ def decode_height(value) when is_integer(value), do: value
5289+ def decode_height(_), do: {:error, "Unexpected type when decoding ViewConfig.height"}
5290+
5291+ def encode_height(value) when is_float(value), do: value
5292+ def encode_height(value) when is_integer(value), do: value
5293+ def encode_height(_), do: {:error, "Unexpected type when encoding ViewConfig.height"}
5294+
38955295 def decode_stroke(value) when is_binary(value), do: value
38965296 def decode_stroke(_), do: {:error, "Unexpected type when decoding ViewConfig.stroke"}
38975297
38985298 def encode_stroke(value) when is_binary(value), do: value
38995299 def encode_stroke(_), do: {:error, "Unexpected type when encoding ViewConfig.stroke"}
39005300
5301+ def decode_stroke_dash_offset(value) when is_float(value), do: value
5302+ def decode_stroke_dash_offset(value) when is_integer(value), do: value
5303+ def decode_stroke_dash_offset(_), do: {:error, "Unexpected type when decoding ViewConfig.stroke_dash_offset"}
5304+
5305+ def encode_stroke_dash_offset(value) when is_float(value), do: value
5306+ def encode_stroke_dash_offset(value) when is_integer(value), do: value
5307+ def encode_stroke_dash_offset(_), do: {:error, "Unexpected type when encoding ViewConfig.stroke_dash_offset"}
5308+
5309+ def decode_stroke_opacity(value) when is_float(value), do: value
5310+ def decode_stroke_opacity(value) when is_integer(value), do: value
5311+ def decode_stroke_opacity(_), do: {:error, "Unexpected type when decoding ViewConfig.stroke_opacity"}
5312+
5313+ def encode_stroke_opacity(value) when is_float(value), do: value
5314+ def encode_stroke_opacity(value) when is_integer(value), do: value
5315+ def encode_stroke_opacity(_), do: {:error, "Unexpected type when encoding ViewConfig.stroke_opacity"}
5316+
5317+ def decode_stroke_width(value) when is_float(value), do: value
5318+ def decode_stroke_width(value) when is_integer(value), do: value
5319+ def decode_stroke_width(_), do: {:error, "Unexpected type when decoding ViewConfig.stroke_width"}
5320+
5321+ def encode_stroke_width(value) when is_float(value), do: value
5322+ def encode_stroke_width(value) when is_integer(value), do: value
5323+ def encode_stroke_width(_), do: {:error, "Unexpected type when encoding ViewConfig.stroke_width"}
5324+
5325+ def decode_width(value) when is_float(value), do: value
5326+ def decode_width(value) when is_integer(value), do: value
5327+ def decode_width(_), do: {:error, "Unexpected type when decoding ViewConfig.width"}
5328+
5329+ def encode_width(value) when is_float(value), do: value
5330+ def encode_width(value) when is_integer(value), do: value
5331+ def encode_width(_), do: {:error, "Unexpected type when encoding ViewConfig.width"}
5332+
39015333 def from_map(m) do
39025334 %ViewConfig{
39035335 clip: m["clip"],
39045336 fill: m["fill"] && decode_fill(m["fill"]),
3905- fill_opacity: m["fillOpacity"],
3906- height: m["height"],
5337+ fill_opacity: m["fillOpacity"] && decode_fill_opacity(m["fillOpacity"]),
5338+ height: m["height"] && decode_height(m["height"]),
39075339 stroke: m["stroke"] && decode_stroke(m["stroke"]),
39085340 stroke_dash: m["strokeDash"],
3909- stroke_dash_offset: m["strokeDashOffset"],
3910- stroke_opacity: m["strokeOpacity"],
3911- stroke_width: m["strokeWidth"],
3912- width: m["width"],
5341+ stroke_dash_offset: m["strokeDashOffset"] && decode_stroke_dash_offset(m["strokeDashOffset"]),
5342+ stroke_opacity: m["strokeOpacity"] && decode_stroke_opacity(m["strokeOpacity"]),
5343+ stroke_width: m["strokeWidth"] && decode_stroke_width(m["strokeWidth"]),
5344+ width: m["width"] && decode_width(m["width"]),
39135345 }
39145346 end
39155347
@@ -4550,15 +5982,47 @@ defmodule BinParams do
45505982 steps: [float()] | nil
45515983 }
45525984
5985+ def decode_base(value) when is_float(value), do: value
5986+ def decode_base(value) when is_integer(value), do: value
5987+ def decode_base(_), do: {:error, "Unexpected type when decoding BinParams.base"}
5988+
5989+ def encode_base(value) when is_float(value), do: value
5990+ def encode_base(value) when is_integer(value), do: value
5991+ def encode_base(_), do: {:error, "Unexpected type when encoding BinParams.base"}
5992+
5993+ def decode_maxbins(value) when is_float(value) and value >= 2, do: value
5994+ def decode_maxbins(value) when is_integer(value) and value >= 2, do: value
5995+ def decode_maxbins(_), do: {:error, "Unexpected type when decoding BinParams.maxbins"}
5996+
5997+ def encode_maxbins(value) when is_float(value), do: value
5998+ def encode_maxbins(value) when is_integer(value), do: value
5999+ def encode_maxbins(_), do: {:error, "Unexpected type when encoding BinParams.maxbins"}
6000+
6001+ def decode_minstep(value) when is_float(value), do: value
6002+ def decode_minstep(value) when is_integer(value), do: value
6003+ def decode_minstep(_), do: {:error, "Unexpected type when decoding BinParams.minstep"}
6004+
6005+ def encode_minstep(value) when is_float(value), do: value
6006+ def encode_minstep(value) when is_integer(value), do: value
6007+ def encode_minstep(_), do: {:error, "Unexpected type when encoding BinParams.minstep"}
6008+
6009+ def decode_step(value) when is_float(value), do: value
6010+ def decode_step(value) when is_integer(value), do: value
6011+ def decode_step(_), do: {:error, "Unexpected type when decoding BinParams.step"}
6012+
6013+ def encode_step(value) when is_float(value), do: value
6014+ def encode_step(value) when is_integer(value), do: value
6015+ def encode_step(_), do: {:error, "Unexpected type when encoding BinParams.step"}
6016+
45536017 def from_map(m) do
45546018 %BinParams{
4555- base: m["base"],
6019+ base: m["base"] && decode_base(m["base"]),
45566020 divide: m["divide"],
45576021 extent: m["extent"],
4558- maxbins: m["maxbins"],
4559- minstep: m["minstep"],
6022+ maxbins: m["maxbins"] && decode_maxbins(m["maxbins"]),
6023+ minstep: m["minstep"] && decode_minstep(m["minstep"]),
45606024 nice: m["nice"],
4561- step: m["step"],
6025+ step: m["step"] && decode_step(m["step"]),
45626026 steps: m["steps"],
45636027 }
45646028 end
@@ -4686,18 +6150,74 @@ defmodule DateTimeClass do
46866150 year: float() | nil
46876151 }
46886152
6153+ def decode_date(value) when is_float(value) and value >= 1 and value <= 31, do: value
6154+ def decode_date(value) when is_integer(value) and value >= 1 and value <= 31, do: value
6155+ def decode_date(_), do: {:error, "Unexpected type when decoding DateTimeClass.date"}
6156+
6157+ def encode_date(value) when is_float(value), do: value
6158+ def encode_date(value) when is_integer(value), do: value
6159+ def encode_date(_), do: {:error, "Unexpected type when encoding DateTimeClass.date"}
6160+
6161+ def decode_hours(value) when is_float(value) and value >= 0 and value <= 23, do: value
6162+ def decode_hours(value) when is_integer(value) and value >= 0 and value <= 23, do: value
6163+ def decode_hours(_), do: {:error, "Unexpected type when decoding DateTimeClass.hours"}
6164+
6165+ def encode_hours(value) when is_float(value), do: value
6166+ def encode_hours(value) when is_integer(value), do: value
6167+ def encode_hours(_), do: {:error, "Unexpected type when encoding DateTimeClass.hours"}
6168+
6169+ def decode_milliseconds(value) when is_float(value) and value >= 0 and value <= 999, do: value
6170+ def decode_milliseconds(value) when is_integer(value) and value >= 0 and value <= 999, do: value
6171+ def decode_milliseconds(_), do: {:error, "Unexpected type when decoding DateTimeClass.milliseconds"}
6172+
6173+ def encode_milliseconds(value) when is_float(value), do: value
6174+ def encode_milliseconds(value) when is_integer(value), do: value
6175+ def encode_milliseconds(_), do: {:error, "Unexpected type when encoding DateTimeClass.milliseconds"}
6176+
6177+ def decode_minutes(value) when is_float(value) and value >= 0 and value <= 59, do: value
6178+ def decode_minutes(value) when is_integer(value) and value >= 0 and value <= 59, do: value
6179+ def decode_minutes(_), do: {:error, "Unexpected type when decoding DateTimeClass.minutes"}
6180+
6181+ def encode_minutes(value) when is_float(value), do: value
6182+ def encode_minutes(value) when is_integer(value), do: value
6183+ def encode_minutes(_), do: {:error, "Unexpected type when encoding DateTimeClass.minutes"}
6184+
6185+ def decode_quarter(value) when is_float(value) and value >= 1 and value <= 4, do: value
6186+ def decode_quarter(value) when is_integer(value) and value >= 1 and value <= 4, do: value
6187+ def decode_quarter(_), do: {:error, "Unexpected type when decoding DateTimeClass.quarter"}
6188+
6189+ def encode_quarter(value) when is_float(value), do: value
6190+ def encode_quarter(value) when is_integer(value), do: value
6191+ def encode_quarter(_), do: {:error, "Unexpected type when encoding DateTimeClass.quarter"}
6192+
6193+ def decode_seconds(value) when is_float(value) and value >= 0 and value <= 59, do: value
6194+ def decode_seconds(value) when is_integer(value) and value >= 0 and value <= 59, do: value
6195+ def decode_seconds(_), do: {:error, "Unexpected type when decoding DateTimeClass.seconds"}
6196+
6197+ def encode_seconds(value) when is_float(value), do: value
6198+ def encode_seconds(value) when is_integer(value), do: value
6199+ def encode_seconds(_), do: {:error, "Unexpected type when encoding DateTimeClass.seconds"}
6200+
6201+ def decode_year(value) when is_float(value), do: value
6202+ def decode_year(value) when is_integer(value), do: value
6203+ def decode_year(_), do: {:error, "Unexpected type when decoding DateTimeClass.year"}
6204+
6205+ def encode_year(value) when is_float(value), do: value
6206+ def encode_year(value) when is_integer(value), do: value
6207+ def encode_year(_), do: {:error, "Unexpected type when encoding DateTimeClass.year"}
6208+
46896209 def from_map(m) do
46906210 %DateTimeClass{
4691- date: m["date"],
6211+ date: m["date"] && decode_date(m["date"]),
46926212 day: m["day"],
4693- hours: m["hours"],
4694- milliseconds: m["milliseconds"],
4695- minutes: m["minutes"],
6213+ hours: m["hours"] && decode_hours(m["hours"]),
6214+ milliseconds: m["milliseconds"] && decode_milliseconds(m["milliseconds"]),
6215+ minutes: m["minutes"] && decode_minutes(m["minutes"]),
46966216 month: m["month"],
4697- quarter: m["quarter"],
4698- seconds: m["seconds"],
6217+ quarter: m["quarter"] && decode_quarter(m["quarter"]),
6218+ seconds: m["seconds"] && decode_seconds(m["seconds"]),
46996219 utc: m["utc"],
4700- year: m["year"],
6220+ year: m["year"] && decode_year(m["year"]),
47016221 }
47026222 end
47036223
@@ -5208,12 +6728,44 @@ defmodule Legend do
52086728 zindex: float() | nil
52096729 }
52106730
6731+ def decode_entry_padding(value) when is_float(value), do: value
6732+ def decode_entry_padding(value) when is_integer(value), do: value
6733+ def decode_entry_padding(_), do: {:error, "Unexpected type when decoding Legend.entry_padding"}
6734+
6735+ def encode_entry_padding(value) when is_float(value), do: value
6736+ def encode_entry_padding(value) when is_integer(value), do: value
6737+ def encode_entry_padding(_), do: {:error, "Unexpected type when encoding Legend.entry_padding"}
6738+
52116739 def decode_format(value) when is_binary(value), do: value
52126740 def decode_format(_), do: {:error, "Unexpected type when decoding Legend.format"}
52136741
52146742 def encode_format(value) when is_binary(value), do: value
52156743 def encode_format(_), do: {:error, "Unexpected type when encoding Legend.format"}
52166744
6745+ def decode_offset(value) when is_float(value), do: value
6746+ def decode_offset(value) when is_integer(value), do: value
6747+ def decode_offset(_), do: {:error, "Unexpected type when decoding Legend.offset"}
6748+
6749+ def encode_offset(value) when is_float(value), do: value
6750+ def encode_offset(value) when is_integer(value), do: value
6751+ def encode_offset(_), do: {:error, "Unexpected type when encoding Legend.offset"}
6752+
6753+ def decode_padding(value) when is_float(value), do: value
6754+ def decode_padding(value) when is_integer(value), do: value
6755+ def decode_padding(_), do: {:error, "Unexpected type when decoding Legend.padding"}
6756+
6757+ def encode_padding(value) when is_float(value), do: value
6758+ def encode_padding(value) when is_integer(value), do: value
6759+ def encode_padding(_), do: {:error, "Unexpected type when encoding Legend.padding"}
6760+
6761+ def decode_tick_count(value) when is_float(value), do: value
6762+ def decode_tick_count(value) when is_integer(value), do: value
6763+ def decode_tick_count(_), do: {:error, "Unexpected type when decoding Legend.tick_count"}
6764+
6765+ def encode_tick_count(value) when is_float(value), do: value
6766+ def encode_tick_count(value) when is_integer(value), do: value
6767+ def encode_tick_count(_), do: {:error, "Unexpected type when encoding Legend.tick_count"}
6768+
52176769 def decode_values_element(%{} = value), do: DateTimeClass.from_map(value)
52186770 def decode_values_element(value) when is_float(value), do: value
52196771 def decode_values_element(value) when is_integer(value), do: value
@@ -5226,18 +6778,26 @@ defmodule Legend do
52266778 def encode_values_element(value) when is_binary(value), do: value
52276779 def encode_values_element(_), do: {:error, "Unexpected type when encoding Legend.values"}
52286780
6781+ def decode_zindex(value) when is_float(value) and value >= 0, do: value
6782+ def decode_zindex(value) when is_integer(value) and value >= 0, do: value
6783+ def decode_zindex(_), do: {:error, "Unexpected type when decoding Legend.zindex"}
6784+
6785+ def encode_zindex(value) when is_float(value), do: value
6786+ def encode_zindex(value) when is_integer(value), do: value
6787+ def encode_zindex(_), do: {:error, "Unexpected type when encoding Legend.zindex"}
6788+
52296789 def from_map(m) do
52306790 %Legend{
5231- entry_padding: m["entryPadding"],
6791+ entry_padding: m["entryPadding"] && decode_entry_padding(m["entryPadding"]),
52326792 format: m["format"] && decode_format(m["format"]),
5233- offset: m["offset"],
6793+ offset: m["offset"] && decode_offset(m["offset"]),
52346794 orient: m["orient"] && LegendOrient.decode(m["orient"]),
5235- padding: m["padding"],
5236- tick_count: m["tickCount"],
6795+ padding: m["padding"] && decode_padding(m["padding"]),
6796+ tick_count: m["tickCount"] && decode_tick_count(m["tickCount"]),
52376797 title: m["title"],
52386798 type: m["type"] && LegendType.decode(m["type"]),
52396799 values: m["values"] && Enum.map(m["values"], &decode_values_element/1),
5240- zindex: m["zindex"],
6800+ zindex: m["zindex"] && decode_zindex(m["zindex"]),
52416801 }
52426802 end
52436803
@@ -5433,9 +6993,17 @@ defmodule InterpolateParams do
54336993 type: InterpolateParamsType.t()
54346994 }
54356995
6996+ def decode_gamma(value) when is_float(value), do: value
6997+ def decode_gamma(value) when is_integer(value), do: value
6998+ def decode_gamma(_), do: {:error, "Unexpected type when decoding InterpolateParams.gamma"}
6999+
7000+ def encode_gamma(value) when is_float(value), do: value
7001+ def encode_gamma(value) when is_integer(value), do: value
7002+ def encode_gamma(_), do: {:error, "Unexpected type when encoding InterpolateParams.gamma"}
7003+
54367004 def from_map(m) do
54377005 %InterpolateParams{
5438- gamma: m["gamma"],
7006+ gamma: m["gamma"] && decode_gamma(m["gamma"]),
54397007 type: InterpolateParamsType.decode(m["type"]),
54407008 }
54417009 end
@@ -5726,6 +7294,14 @@ defmodule Scale do
57267294 zero: boolean() | nil
57277295 }
57287296
7297+ def decode_base(value) when is_float(value), do: value
7298+ def decode_base(value) when is_integer(value), do: value
7299+ def decode_base(_), do: {:error, "Unexpected type when decoding Scale.base"}
7300+
7301+ def encode_base(value) when is_float(value), do: value
7302+ def encode_base(value) when is_integer(value), do: value
7303+ def encode_base(_), do: {:error, "Unexpected type when encoding Scale.base"}
7304+
57297305 def decode_domain(%{"selection" => _,} = value), do: DomainClass.from_map(value)
57307306 def decode_domain(value) when is_binary(value), do: Domain.decode(value)
57317307 def decode_domain(value) when is_list(value), do: value
@@ -5738,6 +7314,14 @@ defmodule Scale do
57387314 def encode_domain(value) when is_nil(value), do: value
57397315 def encode_domain(_), do: {:error, "Unexpected type when encoding Scale.domain"}
57407316
7317+ def decode_exponent(value) when is_float(value), do: value
7318+ def decode_exponent(value) when is_integer(value), do: value
7319+ def decode_exponent(_), do: {:error, "Unexpected type when decoding Scale.exponent"}
7320+
7321+ def encode_exponent(value) when is_float(value), do: value
7322+ def encode_exponent(value) when is_integer(value), do: value
7323+ def encode_exponent(_), do: {:error, "Unexpected type when encoding Scale.exponent"}
7324+
57417325 def decode_interpolate(%{"type" => _,} = value), do: InterpolateParams.from_map(value)
57427326 def decode_interpolate(value) when is_binary(value), do: Interpolate.decode(value)
57437327 def decode_interpolate(value) when is_nil(value), do: value
@@ -5764,6 +7348,30 @@ defmodule Scale do
57647348 def encode_nice(value) when is_nil(value), do: value
57657349 def encode_nice(_), do: {:error, "Unexpected type when encoding Scale.nice"}
57667350
7351+ def decode_padding(value) when is_float(value) and value >= 0, do: value
7352+ def decode_padding(value) when is_integer(value) and value >= 0, do: value
7353+ def decode_padding(_), do: {:error, "Unexpected type when decoding Scale.padding"}
7354+
7355+ def encode_padding(value) when is_float(value), do: value
7356+ def encode_padding(value) when is_integer(value), do: value
7357+ def encode_padding(_), do: {:error, "Unexpected type when encoding Scale.padding"}
7358+
7359+ def decode_padding_inner(value) when is_float(value) and value >= 0 and value <= 1, do: value
7360+ def decode_padding_inner(value) when is_integer(value) and value >= 0 and value <= 1, do: value
7361+ def decode_padding_inner(_), do: {:error, "Unexpected type when decoding Scale.padding_inner"}
7362+
7363+ def encode_padding_inner(value) when is_float(value), do: value
7364+ def encode_padding_inner(value) when is_integer(value), do: value
7365+ def encode_padding_inner(_), do: {:error, "Unexpected type when encoding Scale.padding_inner"}
7366+
7367+ def decode_padding_outer(value) when is_float(value) and value >= 0 and value <= 1, do: value
7368+ def decode_padding_outer(value) when is_integer(value) and value >= 0 and value <= 1, do: value
7369+ def decode_padding_outer(_), do: {:error, "Unexpected type when decoding Scale.padding_outer"}
7370+
7371+ def encode_padding_outer(value) when is_float(value), do: value
7372+ def encode_padding_outer(value) when is_integer(value), do: value
7373+ def encode_padding_outer(_), do: {:error, "Unexpected type when encoding Scale.padding_outer"}
7374+
57677375 def decode_range(value) when is_binary(value), do: value
57687376 def decode_range(value) when is_list(value), do: value
57697377 def decode_range(value) when is_nil(value), do: value
@@ -5786,15 +7394,15 @@ defmodule Scale do
57867394
57877395 def from_map(m) do
57887396 %Scale{
5789- base: m["base"],
7397+ base: m["base"] && decode_base(m["base"]),
57907398 clamp: m["clamp"],
57917399 domain: decode_domain(m["domain"]),
5792- exponent: m["exponent"],
7400+ exponent: m["exponent"] && decode_exponent(m["exponent"]),
57937401 interpolate: decode_interpolate(m["interpolate"]),
57947402 nice: decode_nice(m["nice"]),
5795- padding: m["padding"],
5796- padding_inner: m["paddingInner"],
5797- padding_outer: m["paddingOuter"],
7403+ padding: m["padding"] && decode_padding(m["padding"]),
7404+ padding_inner: m["paddingInner"] && decode_padding_inner(m["paddingInner"]),
7405+ padding_outer: m["paddingOuter"] && decode_padding_outer(m["paddingOuter"]),
57987406 range: decode_range(m["range"]),
57997407 range_step: m["rangeStep"],
58007408 round: m["round"],
@@ -6300,10 +7908,18 @@ defmodule Header do
63007908 def encode_format(value) when is_binary(value), do: value
63017909 def encode_format(_), do: {:error, "Unexpected type when encoding Header.format"}
63027910
7911+ def decode_label_angle(value) when is_float(value) and value >= -360 and value <= 360, do: value
7912+ def decode_label_angle(value) when is_integer(value) and value >= -360 and value <= 360, do: value
7913+ def decode_label_angle(_), do: {:error, "Unexpected type when decoding Header.label_angle"}
7914+
7915+ def encode_label_angle(value) when is_float(value), do: value
7916+ def encode_label_angle(value) when is_integer(value), do: value
7917+ def encode_label_angle(_), do: {:error, "Unexpected type when encoding Header.label_angle"}
7918+
63037919 def from_map(m) do
63047920 %Header{
63057921 format: m["format"] && decode_format(m["format"]),
6306- label_angle: m["labelAngle"],
7922+ label_angle: m["labelAngle"] && decode_label_angle(m["labelAngle"]),
63077923 title: m["title"],
63087924 }
63097925 end
@@ -7059,6 +8675,14 @@ defmodule Axis do
70598675 def encode_format(value) when is_binary(value), do: value
70608676 def encode_format(_), do: {:error, "Unexpected type when encoding Axis.format"}
70618677
8678+ def decode_label_angle(value) when is_float(value) and value >= -360 and value <= 360, do: value
8679+ def decode_label_angle(value) when is_integer(value) and value >= -360 and value <= 360, do: value
8680+ def decode_label_angle(_), do: {:error, "Unexpected type when decoding Axis.label_angle"}
8681+
8682+ def encode_label_angle(value) when is_float(value), do: value
8683+ def encode_label_angle(value) when is_integer(value), do: value
8684+ def encode_label_angle(_), do: {:error, "Unexpected type when encoding Axis.label_angle"}
8685+
70628686 def decode_label_overlap(value) when is_boolean(value), do: value
70638687 def decode_label_overlap(value) when is_binary(value), do: LabelOverlapEnum.decode(value)
70648688 def decode_label_overlap(value) when is_nil(value), do: value
@@ -7069,6 +8693,78 @@ defmodule Axis do
70698693 def encode_label_overlap(value) when is_nil(value), do: value
70708694 def encode_label_overlap(_), do: {:error, "Unexpected type when encoding Axis.label_overlap"}
70718695
8696+ def decode_label_padding(value) when is_float(value), do: value
8697+ def decode_label_padding(value) when is_integer(value), do: value
8698+ def decode_label_padding(_), do: {:error, "Unexpected type when decoding Axis.label_padding"}
8699+
8700+ def encode_label_padding(value) when is_float(value), do: value
8701+ def encode_label_padding(value) when is_integer(value), do: value
8702+ def encode_label_padding(_), do: {:error, "Unexpected type when encoding Axis.label_padding"}
8703+
8704+ def decode_max_extent(value) when is_float(value), do: value
8705+ def decode_max_extent(value) when is_integer(value), do: value
8706+ def decode_max_extent(_), do: {:error, "Unexpected type when decoding Axis.max_extent"}
8707+
8708+ def encode_max_extent(value) when is_float(value), do: value
8709+ def encode_max_extent(value) when is_integer(value), do: value
8710+ def encode_max_extent(_), do: {:error, "Unexpected type when encoding Axis.max_extent"}
8711+
8712+ def decode_min_extent(value) when is_float(value), do: value
8713+ def decode_min_extent(value) when is_integer(value), do: value
8714+ def decode_min_extent(_), do: {:error, "Unexpected type when decoding Axis.min_extent"}
8715+
8716+ def encode_min_extent(value) when is_float(value), do: value
8717+ def encode_min_extent(value) when is_integer(value), do: value
8718+ def encode_min_extent(_), do: {:error, "Unexpected type when encoding Axis.min_extent"}
8719+
8720+ def decode_offset(value) when is_float(value), do: value
8721+ def decode_offset(value) when is_integer(value), do: value
8722+ def decode_offset(_), do: {:error, "Unexpected type when decoding Axis.offset"}
8723+
8724+ def encode_offset(value) when is_float(value), do: value
8725+ def encode_offset(value) when is_integer(value), do: value
8726+ def encode_offset(_), do: {:error, "Unexpected type when encoding Axis.offset"}
8727+
8728+ def decode_position(value) when is_float(value), do: value
8729+ def decode_position(value) when is_integer(value), do: value
8730+ def decode_position(_), do: {:error, "Unexpected type when decoding Axis.position"}
8731+
8732+ def encode_position(value) when is_float(value), do: value
8733+ def encode_position(value) when is_integer(value), do: value
8734+ def encode_position(_), do: {:error, "Unexpected type when encoding Axis.position"}
8735+
8736+ def decode_tick_count(value) when is_float(value), do: value
8737+ def decode_tick_count(value) when is_integer(value), do: value
8738+ def decode_tick_count(_), do: {:error, "Unexpected type when decoding Axis.tick_count"}
8739+
8740+ def encode_tick_count(value) when is_float(value), do: value
8741+ def encode_tick_count(value) when is_integer(value), do: value
8742+ def encode_tick_count(_), do: {:error, "Unexpected type when encoding Axis.tick_count"}
8743+
8744+ def decode_tick_size(value) when is_float(value) and value >= 0, do: value
8745+ def decode_tick_size(value) when is_integer(value) and value >= 0, do: value
8746+ def decode_tick_size(_), do: {:error, "Unexpected type when decoding Axis.tick_size"}
8747+
8748+ def encode_tick_size(value) when is_float(value), do: value
8749+ def encode_tick_size(value) when is_integer(value), do: value
8750+ def encode_tick_size(_), do: {:error, "Unexpected type when encoding Axis.tick_size"}
8751+
8752+ def decode_title_max_length(value) when is_float(value), do: value
8753+ def decode_title_max_length(value) when is_integer(value), do: value
8754+ def decode_title_max_length(_), do: {:error, "Unexpected type when decoding Axis.title_max_length"}
8755+
8756+ def encode_title_max_length(value) when is_float(value), do: value
8757+ def encode_title_max_length(value) when is_integer(value), do: value
8758+ def encode_title_max_length(_), do: {:error, "Unexpected type when encoding Axis.title_max_length"}
8759+
8760+ def decode_title_padding(value) when is_float(value), do: value
8761+ def decode_title_padding(value) when is_integer(value), do: value
8762+ def decode_title_padding(_), do: {:error, "Unexpected type when decoding Axis.title_padding"}
8763+
8764+ def encode_title_padding(value) when is_float(value), do: value
8765+ def encode_title_padding(value) when is_integer(value), do: value
8766+ def encode_title_padding(_), do: {:error, "Unexpected type when encoding Axis.title_padding"}
8767+
70728768 def decode_values_element(%{} = value), do: DateTimeClass.from_map(value)
70738769 def decode_values_element(value) when is_float(value), do: value
70748770 def decode_values_element(value) when is_integer(value), do: value
@@ -7079,30 +8775,38 @@ defmodule Axis do
70798775 def encode_values_element(value) when is_integer(value), do: value
70808776 def encode_values_element(_), do: {:error, "Unexpected type when encoding Axis.values"}
70818777
8778+ def decode_zindex(value) when is_float(value) and value >= 0, do: value
8779+ def decode_zindex(value) when is_integer(value) and value >= 0, do: value
8780+ def decode_zindex(_), do: {:error, "Unexpected type when decoding Axis.zindex"}
8781+
8782+ def encode_zindex(value) when is_float(value), do: value
8783+ def encode_zindex(value) when is_integer(value), do: value
8784+ def encode_zindex(_), do: {:error, "Unexpected type when encoding Axis.zindex"}
8785+
70828786 def from_map(m) do
70838787 %Axis{
70848788 domain: m["domain"],
70858789 format: m["format"] && decode_format(m["format"]),
70868790 grid: m["grid"],
7087- label_angle: m["labelAngle"],
8791+ label_angle: m["labelAngle"] && decode_label_angle(m["labelAngle"]),
70888792 label_bound: m["labelBound"],
70898793 label_flush: m["labelFlush"],
70908794 label_overlap: decode_label_overlap(m["labelOverlap"]),
7091- label_padding: m["labelPadding"],
8795+ label_padding: m["labelPadding"] && decode_label_padding(m["labelPadding"]),
70928796 labels: m["labels"],
7093- max_extent: m["maxExtent"],
7094- min_extent: m["minExtent"],
7095- offset: m["offset"],
8797+ max_extent: m["maxExtent"] && decode_max_extent(m["maxExtent"]),
8798+ min_extent: m["minExtent"] && decode_min_extent(m["minExtent"]),
8799+ offset: m["offset"] && decode_offset(m["offset"]),
70968800 orient: m["orient"] && TitleOrient.decode(m["orient"]),
7097- position: m["position"],
7098- tick_count: m["tickCount"],
8801+ position: m["position"] && decode_position(m["position"]),
8802+ tick_count: m["tickCount"] && decode_tick_count(m["tickCount"]),
70998803 ticks: m["ticks"],
7100- tick_size: m["tickSize"],
8804+ tick_size: m["tickSize"] && decode_tick_size(m["tickSize"]),
71018805 title: m["title"],
7102- title_max_length: m["titleMaxLength"],
7103- title_padding: m["titlePadding"],
8806+ title_max_length: m["titleMaxLength"] && decode_title_max_length(m["titleMaxLength"]),
8807+ title_padding: m["titlePadding"] && decode_title_padding(m["titlePadding"]),
71048808 values: m["values"] && Enum.map(m["values"], &decode_values_element/1),
7105- zindex: m["zindex"],
8809+ zindex: m["zindex"] && decode_zindex(m["zindex"]),
71068810 }
71078811 end
71088812
@@ -7734,27 +9438,67 @@ defmodule MarkDef do
77349438 type: Mark.t()
77359439 }
77369440
9441+ def decode_angle(value) when is_float(value) and value >= 0 and value <= 360, do: value
9442+ def decode_angle(value) when is_integer(value) and value >= 0 and value <= 360, do: value
9443+ def decode_angle(_), do: {:error, "Unexpected type when decoding MarkDef.angle"}
9444+
9445+ def encode_angle(value) when is_float(value), do: value
9446+ def encode_angle(value) when is_integer(value), do: value
9447+ def encode_angle(_), do: {:error, "Unexpected type when encoding MarkDef.angle"}
9448+
77379449 def decode_color(value) when is_binary(value), do: value
77389450 def decode_color(_), do: {:error, "Unexpected type when decoding MarkDef.color"}
77399451
77409452 def encode_color(value) when is_binary(value), do: value
77419453 def encode_color(_), do: {:error, "Unexpected type when encoding MarkDef.color"}
77429454
9455+ def decode_dx(value) when is_float(value), do: value
9456+ def decode_dx(value) when is_integer(value), do: value
9457+ def decode_dx(_), do: {:error, "Unexpected type when decoding MarkDef.dx"}
9458+
9459+ def encode_dx(value) when is_float(value), do: value
9460+ def encode_dx(value) when is_integer(value), do: value
9461+ def encode_dx(_), do: {:error, "Unexpected type when encoding MarkDef.dx"}
9462+
9463+ def decode_dy(value) when is_float(value), do: value
9464+ def decode_dy(value) when is_integer(value), do: value
9465+ def decode_dy(_), do: {:error, "Unexpected type when decoding MarkDef.dy"}
9466+
9467+ def encode_dy(value) when is_float(value), do: value
9468+ def encode_dy(value) when is_integer(value), do: value
9469+ def encode_dy(_), do: {:error, "Unexpected type when encoding MarkDef.dy"}
9470+
77439471 def decode_fill(value) when is_binary(value), do: value
77449472 def decode_fill(_), do: {:error, "Unexpected type when decoding MarkDef.fill"}
77459473
77469474 def encode_fill(value) when is_binary(value), do: value
77479475 def encode_fill(_), do: {:error, "Unexpected type when encoding MarkDef.fill"}
77489476
9477+ def decode_fill_opacity(value) when is_float(value) and value >= 0 and value <= 1, do: value
9478+ def decode_fill_opacity(value) when is_integer(value) and value >= 0 and value <= 1, do: value
9479+ def decode_fill_opacity(_), do: {:error, "Unexpected type when decoding MarkDef.fill_opacity"}
9480+
9481+ def encode_fill_opacity(value) when is_float(value), do: value
9482+ def encode_fill_opacity(value) when is_integer(value), do: value
9483+ def encode_fill_opacity(_), do: {:error, "Unexpected type when encoding MarkDef.fill_opacity"}
9484+
77499485 def decode_font(value) when is_binary(value), do: value
77509486 def decode_font(_), do: {:error, "Unexpected type when decoding MarkDef.font"}
77519487
77529488 def encode_font(value) when is_binary(value), do: value
77539489 def encode_font(_), do: {:error, "Unexpected type when encoding MarkDef.font"}
77549490
9491+ def decode_font_size(value) when is_float(value) and value >= 0, do: value
9492+ def decode_font_size(value) when is_integer(value) and value >= 0, do: value
9493+ def decode_font_size(_), do: {:error, "Unexpected type when decoding MarkDef.font_size"}
9494+
9495+ def encode_font_size(value) when is_float(value), do: value
9496+ def encode_font_size(value) when is_integer(value), do: value
9497+ def encode_font_size(_), do: {:error, "Unexpected type when encoding MarkDef.font_size"}
9498+
77559499 def decode_font_weight(value) when is_binary(value), do: FontWeight.decode(value)
7756- def decode_font_weight(value) when is_float(value), do: value
7757- def decode_font_weight(value) when is_integer(value), do: value
9500+ def decode_font_weight(value) when is_float(value) and value >= 100 and value <= 900, do: value
9501+ def decode_font_weight(value) when is_integer(value) and value >= 100 and value <= 900, do: value
77589502 def decode_font_weight(value) when is_nil(value), do: value
77599503 def decode_font_weight(_), do: {:error, "Unexpected type when decoding MarkDef.font_weight"}
77609504
@@ -7770,18 +9514,74 @@ defmodule MarkDef do
77709514 def encode_href(value) when is_binary(value), do: value
77719515 def encode_href(_), do: {:error, "Unexpected type when encoding MarkDef.href"}
77729516
9517+ def decode_limit(value) when is_float(value), do: value
9518+ def decode_limit(value) when is_integer(value), do: value
9519+ def decode_limit(_), do: {:error, "Unexpected type when decoding MarkDef.limit"}
9520+
9521+ def encode_limit(value) when is_float(value), do: value
9522+ def encode_limit(value) when is_integer(value), do: value
9523+ def encode_limit(_), do: {:error, "Unexpected type when encoding MarkDef.limit"}
9524+
9525+ def decode_opacity(value) when is_float(value) and value >= 0 and value <= 1, do: value
9526+ def decode_opacity(value) when is_integer(value) and value >= 0 and value <= 1, do: value
9527+ def decode_opacity(_), do: {:error, "Unexpected type when decoding MarkDef.opacity"}
9528+
9529+ def encode_opacity(value) when is_float(value), do: value
9530+ def encode_opacity(value) when is_integer(value), do: value
9531+ def encode_opacity(_), do: {:error, "Unexpected type when encoding MarkDef.opacity"}
9532+
9533+ def decode_radius(value) when is_float(value) and value >= 0, do: value
9534+ def decode_radius(value) when is_integer(value) and value >= 0, do: value
9535+ def decode_radius(_), do: {:error, "Unexpected type when decoding MarkDef.radius"}
9536+
9537+ def encode_radius(value) when is_float(value), do: value
9538+ def encode_radius(value) when is_integer(value), do: value
9539+ def encode_radius(_), do: {:error, "Unexpected type when encoding MarkDef.radius"}
9540+
77739541 def decode_shape(value) when is_binary(value), do: value
77749542 def decode_shape(_), do: {:error, "Unexpected type when decoding MarkDef.shape"}
77759543
77769544 def encode_shape(value) when is_binary(value), do: value
77779545 def encode_shape(_), do: {:error, "Unexpected type when encoding MarkDef.shape"}
77789546
9547+ def decode_size(value) when is_float(value) and value >= 0, do: value
9548+ def decode_size(value) when is_integer(value) and value >= 0, do: value
9549+ def decode_size(_), do: {:error, "Unexpected type when decoding MarkDef.size"}
9550+
9551+ def encode_size(value) when is_float(value), do: value
9552+ def encode_size(value) when is_integer(value), do: value
9553+ def encode_size(_), do: {:error, "Unexpected type when encoding MarkDef.size"}
9554+
77799555 def decode_stroke(value) when is_binary(value), do: value
77809556 def decode_stroke(_), do: {:error, "Unexpected type when decoding MarkDef.stroke"}
77819557
77829558 def encode_stroke(value) when is_binary(value), do: value
77839559 def encode_stroke(_), do: {:error, "Unexpected type when encoding MarkDef.stroke"}
77849560
9561+ def decode_stroke_dash_offset(value) when is_float(value), do: value
9562+ def decode_stroke_dash_offset(value) when is_integer(value), do: value
9563+ def decode_stroke_dash_offset(_), do: {:error, "Unexpected type when decoding MarkDef.stroke_dash_offset"}
9564+
9565+ def encode_stroke_dash_offset(value) when is_float(value), do: value
9566+ def encode_stroke_dash_offset(value) when is_integer(value), do: value
9567+ def encode_stroke_dash_offset(_), do: {:error, "Unexpected type when encoding MarkDef.stroke_dash_offset"}
9568+
9569+ def decode_stroke_opacity(value) when is_float(value) and value >= 0 and value <= 1, do: value
9570+ def decode_stroke_opacity(value) when is_integer(value) and value >= 0 and value <= 1, do: value
9571+ def decode_stroke_opacity(_), do: {:error, "Unexpected type when decoding MarkDef.stroke_opacity"}
9572+
9573+ def encode_stroke_opacity(value) when is_float(value), do: value
9574+ def encode_stroke_opacity(value) when is_integer(value), do: value
9575+ def encode_stroke_opacity(_), do: {:error, "Unexpected type when encoding MarkDef.stroke_opacity"}
9576+
9577+ def decode_stroke_width(value) when is_float(value) and value >= 0, do: value
9578+ def decode_stroke_width(value) when is_integer(value) and value >= 0, do: value
9579+ def decode_stroke_width(_), do: {:error, "Unexpected type when decoding MarkDef.stroke_width"}
9580+
9581+ def encode_stroke_width(value) when is_float(value), do: value
9582+ def encode_stroke_width(value) when is_integer(value), do: value
9583+ def encode_stroke_width(_), do: {:error, "Unexpected type when encoding MarkDef.stroke_width"}
9584+
77859585 def decode_style(value) when is_binary(value), do: value
77869586 def decode_style(value) when is_list(value), do: value
77879587 def decode_style(value) when is_nil(value), do: value
@@ -7792,46 +9592,62 @@ defmodule MarkDef do
77929592 def encode_style(value) when is_nil(value), do: value
77939593 def encode_style(_), do: {:error, "Unexpected type when encoding MarkDef.style"}
77949594
9595+ def decode_tension(value) when is_float(value) and value >= 0 and value <= 1, do: value
9596+ def decode_tension(value) when is_integer(value) and value >= 0 and value <= 1, do: value
9597+ def decode_tension(_), do: {:error, "Unexpected type when decoding MarkDef.tension"}
9598+
9599+ def encode_tension(value) when is_float(value), do: value
9600+ def encode_tension(value) when is_integer(value), do: value
9601+ def encode_tension(_), do: {:error, "Unexpected type when encoding MarkDef.tension"}
9602+
77959603 def decode_text(value) when is_binary(value), do: value
77969604 def decode_text(_), do: {:error, "Unexpected type when decoding MarkDef.text"}
77979605
77989606 def encode_text(value) when is_binary(value), do: value
77999607 def encode_text(_), do: {:error, "Unexpected type when encoding MarkDef.text"}
78009608
9609+ def decode_theta(value) when is_float(value), do: value
9610+ def decode_theta(value) when is_integer(value), do: value
9611+ def decode_theta(_), do: {:error, "Unexpected type when decoding MarkDef.theta"}
9612+
9613+ def encode_theta(value) when is_float(value), do: value
9614+ def encode_theta(value) when is_integer(value), do: value
9615+ def encode_theta(_), do: {:error, "Unexpected type when encoding MarkDef.theta"}
9616+
78019617 def from_map(m) do
78029618 %MarkDef{
78039619 align: m["align"] && HorizontalAlign.decode(m["align"]),
7804- angle: m["angle"],
9620+ angle: m["angle"] && decode_angle(m["angle"]),
78059621 baseline: m["baseline"] && VerticalAlign.decode(m["baseline"]),
78069622 clip: m["clip"],
78079623 color: m["color"] && decode_color(m["color"]),
78089624 cursor: m["cursor"] && Cursor.decode(m["cursor"]),
7809- dx: m["dx"],
7810- dy: m["dy"],
9625+ dx: m["dx"] && decode_dx(m["dx"]),
9626+ dy: m["dy"] && decode_dy(m["dy"]),
78119627 fill: m["fill"] && decode_fill(m["fill"]),
78129628 filled: m["filled"],
7813- fill_opacity: m["fillOpacity"],
9629+ fill_opacity: m["fillOpacity"] && decode_fill_opacity(m["fillOpacity"]),
78149630 font: m["font"] && decode_font(m["font"]),
7815- font_size: m["fontSize"],
9631+ font_size: m["fontSize"] && decode_font_size(m["fontSize"]),
78169632 font_style: m["fontStyle"] && FontStyle.decode(m["fontStyle"]),
78179633 font_weight: decode_font_weight(m["fontWeight"]),
78189634 href: m["href"] && decode_href(m["href"]),
78199635 interpolate: m["interpolate"] && Interpolate.decode(m["interpolate"]),
7820- limit: m["limit"],
7821- opacity: m["opacity"],
9636+ limit: m["limit"] && decode_limit(m["limit"]),
9637+ opacity: m["opacity"] && decode_opacity(m["opacity"]),
78229638 orient: m["orient"] && Orient.decode(m["orient"]),
7823- radius: m["radius"],
9639+ radius: m["radius"] && decode_radius(m["radius"]),
78249640 shape: m["shape"] && decode_shape(m["shape"]),
7825- size: m["size"],
9641+ size: m["size"] && decode_size(m["size"]),
78269642 stroke: m["stroke"] && decode_stroke(m["stroke"]),
78279643 stroke_dash: m["strokeDash"],
7828- stroke_dash_offset: m["strokeDashOffset"],
7829- stroke_opacity: m["strokeOpacity"],
7830- stroke_width: m["strokeWidth"],
9644+ stroke_dash_offset: m["strokeDashOffset"] && decode_stroke_dash_offset(m["strokeDashOffset"]),
9645+ stroke_opacity: m["strokeOpacity"] && decode_stroke_opacity(m["strokeOpacity"]),
9646+ stroke_width: m["strokeWidth"] && decode_stroke_width(m["strokeWidth"]),
78319647 style: decode_style(m["style"]),
7832- tension: m["tension"],
9648+ tension: m["tension"] && decode_tension(m["tension"]),
78339649 text: m["text"] && decode_text(m["text"]),
7834- theta: m["theta"],
9650+ theta: m["theta"] && decode_theta(m["theta"]),
78359651 type: Mark.decode(m["type"]),
78369652 }
78379653 end
@@ -7921,6 +9737,54 @@ defmodule Projection do
79219737 type: VGProjectionType.t() | nil
79229738 }
79239739
9740+ def decode_clip_angle(value) when is_float(value), do: value
9741+ def decode_clip_angle(value) when is_integer(value), do: value
9742+ def decode_clip_angle(_), do: {:error, "Unexpected type when decoding Projection.clip_angle"}
9743+
9744+ def encode_clip_angle(value) when is_float(value), do: value
9745+ def encode_clip_angle(value) when is_integer(value), do: value
9746+ def encode_clip_angle(_), do: {:error, "Unexpected type when encoding Projection.clip_angle"}
9747+
9748+ def decode_coefficient(value) when is_float(value), do: value
9749+ def decode_coefficient(value) when is_integer(value), do: value
9750+ def decode_coefficient(_), do: {:error, "Unexpected type when decoding Projection.coefficient"}
9751+
9752+ def encode_coefficient(value) when is_float(value), do: value
9753+ def encode_coefficient(value) when is_integer(value), do: value
9754+ def encode_coefficient(_), do: {:error, "Unexpected type when encoding Projection.coefficient"}
9755+
9756+ def decode_distance(value) when is_float(value), do: value
9757+ def decode_distance(value) when is_integer(value), do: value
9758+ def decode_distance(_), do: {:error, "Unexpected type when decoding Projection.distance"}
9759+
9760+ def encode_distance(value) when is_float(value), do: value
9761+ def encode_distance(value) when is_integer(value), do: value
9762+ def encode_distance(_), do: {:error, "Unexpected type when encoding Projection.distance"}
9763+
9764+ def decode_fraction(value) when is_float(value), do: value
9765+ def decode_fraction(value) when is_integer(value), do: value
9766+ def decode_fraction(_), do: {:error, "Unexpected type when decoding Projection.fraction"}
9767+
9768+ def encode_fraction(value) when is_float(value), do: value
9769+ def encode_fraction(value) when is_integer(value), do: value
9770+ def encode_fraction(_), do: {:error, "Unexpected type when encoding Projection.fraction"}
9771+
9772+ def decode_lobes(value) when is_float(value), do: value
9773+ def decode_lobes(value) when is_integer(value), do: value
9774+ def decode_lobes(_), do: {:error, "Unexpected type when decoding Projection.lobes"}
9775+
9776+ def encode_lobes(value) when is_float(value), do: value
9777+ def encode_lobes(value) when is_integer(value), do: value
9778+ def encode_lobes(_), do: {:error, "Unexpected type when encoding Projection.lobes"}
9779+
9780+ def decode_parallel(value) when is_float(value), do: value
9781+ def decode_parallel(value) when is_integer(value), do: value
9782+ def decode_parallel(_), do: {:error, "Unexpected type when decoding Projection.parallel"}
9783+
9784+ def encode_parallel(value) when is_float(value), do: value
9785+ def encode_parallel(value) when is_integer(value), do: value
9786+ def encode_parallel(_), do: {:error, "Unexpected type when encoding Projection.parallel"}
9787+
79249788 def decode_precision_value(value) when is_float(value), do: value
79259789 def decode_precision_value(value) when is_integer(value), do: value
79269790 def decode_precision_value(value) when is_binary(value), do: value
@@ -7931,23 +9795,55 @@ defmodule Projection do
79319795 def encode_precision_value(value) when is_binary(value), do: value
79329796 def encode_precision_value(_), do: {:error, "Unexpected type when encoding Projection.precision"}
79339797
9798+ def decode_radius(value) when is_float(value), do: value
9799+ def decode_radius(value) when is_integer(value), do: value
9800+ def decode_radius(_), do: {:error, "Unexpected type when decoding Projection.radius"}
9801+
9802+ def encode_radius(value) when is_float(value), do: value
9803+ def encode_radius(value) when is_integer(value), do: value
9804+ def encode_radius(_), do: {:error, "Unexpected type when encoding Projection.radius"}
9805+
9806+ def decode_ratio(value) when is_float(value), do: value
9807+ def decode_ratio(value) when is_integer(value), do: value
9808+ def decode_ratio(_), do: {:error, "Unexpected type when decoding Projection.ratio"}
9809+
9810+ def encode_ratio(value) when is_float(value), do: value
9811+ def encode_ratio(value) when is_integer(value), do: value
9812+ def encode_ratio(_), do: {:error, "Unexpected type when encoding Projection.ratio"}
9813+
9814+ def decode_spacing(value) when is_float(value), do: value
9815+ def decode_spacing(value) when is_integer(value), do: value
9816+ def decode_spacing(_), do: {:error, "Unexpected type when decoding Projection.spacing"}
9817+
9818+ def encode_spacing(value) when is_float(value), do: value
9819+ def encode_spacing(value) when is_integer(value), do: value
9820+ def encode_spacing(_), do: {:error, "Unexpected type when encoding Projection.spacing"}
9821+
9822+ def decode_tilt(value) when is_float(value), do: value
9823+ def decode_tilt(value) when is_integer(value), do: value
9824+ def decode_tilt(_), do: {:error, "Unexpected type when decoding Projection.tilt"}
9825+
9826+ def encode_tilt(value) when is_float(value), do: value
9827+ def encode_tilt(value) when is_integer(value), do: value
9828+ def encode_tilt(_), do: {:error, "Unexpected type when encoding Projection.tilt"}
9829+
79349830 def from_map(m) do
79359831 %Projection{
79369832 center: m["center"],
7937- clip_angle: m["clipAngle"],
9833+ clip_angle: m["clipAngle"] && decode_clip_angle(m["clipAngle"]),
79389834 clip_extent: m["clipExtent"],
7939- coefficient: m["coefficient"],
7940- distance: m["distance"],
7941- fraction: m["fraction"],
7942- lobes: m["lobes"],
7943- parallel: m["parallel"],
9835+ coefficient: m["coefficient"] && decode_coefficient(m["coefficient"]),
9836+ distance: m["distance"] && decode_distance(m["distance"]),
9837+ fraction: m["fraction"] && decode_fraction(m["fraction"]),
9838+ lobes: m["lobes"] && decode_lobes(m["lobes"]),
9839+ parallel: m["parallel"] && decode_parallel(m["parallel"]),
79449840 precision: m["precision"]
79459841 |> Map.new(fn {key, value} -> {key, decode_precision_value(value)} end),
7946- radius: m["radius"],
7947- ratio: m["ratio"],
9842+ radius: m["radius"] && decode_radius(m["radius"]),
9843+ ratio: m["ratio"] && decode_ratio(m["ratio"]),
79489844 rotate: m["rotate"],
7949- spacing: m["spacing"],
7950- tilt: m["tilt"],
9845+ spacing: m["spacing"] && decode_spacing(m["spacing"]),
9846+ tilt: m["tilt"] && decode_tilt(m["tilt"]),
79519847 type: m["type"] && VGProjectionType.decode(m["type"]),
79529848 }
79539849 end
@@ -8365,6 +10261,14 @@ defmodule TitleParams do
836510261 text: String.t()
836610262 }
836710263
10264+ def decode_offset(value) when is_float(value), do: value
10265+ def decode_offset(value) when is_integer(value), do: value
10266+ def decode_offset(_), do: {:error, "Unexpected type when decoding TitleParams.offset"}
10267+
10268+ def encode_offset(value) when is_float(value), do: value
10269+ def encode_offset(value) when is_integer(value), do: value
10270+ def encode_offset(_), do: {:error, "Unexpected type when encoding TitleParams.offset"}
10271+
836810272 def decode_style(value) when is_binary(value), do: value
836910273 def decode_style(value) when is_list(value), do: value
837010274 def decode_style(value) when is_nil(value), do: value
@@ -8384,7 +10288,7 @@ defmodule TitleParams do
838410288 def from_map(m) do
838510289 %TitleParams{
838610290 anchor: m["anchor"] && Anchor.decode(m["anchor"]),
8387- offset: m["offset"],
10291+ offset: m["offset"] && decode_offset(m["offset"]),
838810292 orient: m["orient"] && TitleOrient.decode(m["orient"]),
838910293 style: decode_style(m["style"]),
839010294 text: decode_text(m["text"]),
@@ -8695,6 +10599,14 @@ defmodule LayerSpec do
869510599 def encode_description(value) when is_binary(value), do: value
869610600 def encode_description(_), do: {:error, "Unexpected type when encoding LayerSpec.description"}
869710601
10602+ def decode_height(value) when is_float(value), do: value
10603+ def decode_height(value) when is_integer(value), do: value
10604+ def decode_height(_), do: {:error, "Unexpected type when decoding LayerSpec.height"}
10605+
10606+ def encode_height(value) when is_float(value), do: value
10607+ def encode_height(value) when is_integer(value), do: value
10608+ def encode_height(_), do: {:error, "Unexpected type when encoding LayerSpec.height"}
10609+
869810610 def decode_name(value) when is_binary(value), do: value
869910611 def decode_name(_), do: {:error, "Unexpected type when decoding LayerSpec.name"}
870010612
@@ -8711,6 +10623,14 @@ defmodule LayerSpec do
871110623 def encode_title(value) when is_nil(value), do: value
871210624 def encode_title(_), do: {:error, "Unexpected type when encoding LayerSpec.title"}
871310625
10626+ def decode_width(value) when is_float(value), do: value
10627+ def decode_width(value) when is_integer(value), do: value
10628+ def decode_width(_), do: {:error, "Unexpected type when decoding LayerSpec.width"}
10629+
10630+ def encode_width(value) when is_float(value), do: value
10631+ def encode_width(value) when is_integer(value), do: value
10632+ def encode_width(_), do: {:error, "Unexpected type when encoding LayerSpec.width"}
10633+
871410634 def decode_mark(%{"type" => _,} = value), do: MarkDef.from_map(value)
871510635 def decode_mark(value) when is_binary(value), do: Mark.decode(value)
871610636 def decode_mark(value) when is_nil(value), do: value
@@ -8725,13 +10645,13 @@ defmodule LayerSpec do
872510645 %LayerSpec{
872610646 data: m["data"] && Data.from_map(m["data"]),
872710647 description: m["description"] && decode_description(m["description"]),
8728- height: m["height"],
10648+ height: m["height"] && decode_height(m["height"]),
872910649 layer: m["layer"] && Enum.map(m["layer"], &LayerSpec.from_map/1),
873010650 name: m["name"] && decode_name(m["name"]),
873110651 resolve: m["resolve"] && Resolve.from_map(m["resolve"]),
873210652 title: decode_title(m["title"]),
873310653 transform: m["transform"] && Enum.map(m["transform"], &Transform.from_map/1),
8734- width: m["width"],
10654+ width: m["width"] && decode_width(m["width"]),
873510655 encoding: m["encoding"] && Encoding.from_map(m["encoding"]),
873610656 mark: decode_mark(m["mark"]),
873710657 projection: m["projection"] && Projection.from_map(m["projection"]),
@@ -8866,6 +10786,14 @@ defmodule Spec do
886610786 def encode_description(value) when is_binary(value), do: value
886710787 def encode_description(_), do: {:error, "Unexpected type when encoding Spec.description"}
886810788
10789+ def decode_height(value) when is_float(value), do: value
10790+ def decode_height(value) when is_integer(value), do: value
10791+ def decode_height(_), do: {:error, "Unexpected type when decoding Spec.height"}
10792+
10793+ def encode_height(value) when is_float(value), do: value
10794+ def encode_height(value) when is_integer(value), do: value
10795+ def encode_height(_), do: {:error, "Unexpected type when encoding Spec.height"}
10796+
886910797 def decode_name(value) when is_binary(value), do: value
887010798 def decode_name(_), do: {:error, "Unexpected type when decoding Spec.name"}
887110799
@@ -8882,6 +10810,14 @@ defmodule Spec do
888210810 def encode_title(value) when is_nil(value), do: value
888310811 def encode_title(_), do: {:error, "Unexpected type when encoding Spec.title"}
888410812
10813+ def decode_width(value) when is_float(value), do: value
10814+ def decode_width(value) when is_integer(value), do: value
10815+ def decode_width(_), do: {:error, "Unexpected type when decoding Spec.width"}
10816+
10817+ def encode_width(value) when is_float(value), do: value
10818+ def encode_width(value) when is_integer(value), do: value
10819+ def encode_width(_), do: {:error, "Unexpected type when encoding Spec.width"}
10820+
888510821 def decode_mark(%{"type" => _,} = value), do: MarkDef.from_map(value)
888610822 def decode_mark(value) when is_binary(value), do: Mark.decode(value)
888710823 def decode_mark(value) when is_nil(value), do: value
@@ -8896,13 +10832,13 @@ defmodule Spec do
889610832 %Spec{
889710833 data: m["data"] && Data.from_map(m["data"]),
889810834 description: m["description"] && decode_description(m["description"]),
8899- height: m["height"],
10835+ height: m["height"] && decode_height(m["height"]),
890010836 layer: m["layer"] && Enum.map(m["layer"], &LayerSpec.from_map/1),
890110837 name: m["name"] && decode_name(m["name"]),
890210838 resolve: m["resolve"] && Resolve.from_map(m["resolve"]),
890310839 title: decode_title(m["title"]),
890410840 transform: m["transform"] && Enum.map(m["transform"], &Transform.from_map/1),
8905- width: m["width"],
10841+ width: m["width"] && decode_width(m["width"]),
890610842 encoding: m["encoding"] && Encoding.from_map(m["encoding"]),
890710843 mark: decode_mark(m["mark"]),
890810844 projection: m["projection"] && Projection.from_map(m["projection"]),
@@ -9036,6 +10972,14 @@ defmodule TopLevel do
903610972 def encode_description(value) when is_binary(value), do: value
903710973 def encode_description(_), do: {:error, "Unexpected type when encoding TopLevel.description"}
903810974
10975+ def decode_height(value) when is_float(value), do: value
10976+ def decode_height(value) when is_integer(value), do: value
10977+ def decode_height(_), do: {:error, "Unexpected type when decoding TopLevel.height"}
10978+
10979+ def encode_height(value) when is_float(value), do: value
10980+ def encode_height(value) when is_integer(value), do: value
10981+ def encode_height(_), do: {:error, "Unexpected type when encoding TopLevel.height"}
10982+
903910983 def decode_mark(%{"type" => _,} = value), do: MarkDef.from_map(value)
904010984 def decode_mark(value) when is_binary(value), do: Mark.decode(value)
904110985 def decode_mark(value) when is_nil(value), do: value
@@ -9074,6 +11018,14 @@ defmodule TopLevel do
907411018 def encode_title(value) when is_nil(value), do: value
907511019 def encode_title(_), do: {:error, "Unexpected type when encoding TopLevel.title"}
907611020
11021+ def decode_width(value) when is_float(value), do: value
11022+ def decode_width(value) when is_integer(value), do: value
11023+ def decode_width(_), do: {:error, "Unexpected type when decoding TopLevel.width"}
11024+
11025+ def encode_width(value) when is_float(value), do: value
11026+ def encode_width(value) when is_integer(value), do: value
11027+ def encode_width(_), do: {:error, "Unexpected type when encoding TopLevel.width"}
11028+
907711029 def from_map(m) do
907811030 %TopLevel{
907911031 schema: m["$schema"] && decode_schema(m["$schema"]),
@@ -9083,7 +11035,7 @@ defmodule TopLevel do
908311035 data: m["data"] && Data.from_map(m["data"]),
908411036 description: m["description"] && decode_description(m["description"]),
908511037 encoding: m["encoding"] && EncodingWithFacet.from_map(m["encoding"]),
9086- height: m["height"],
11038+ height: m["height"] && decode_height(m["height"]),
908711039 mark: decode_mark(m["mark"]),
908811040 name: m["name"] && decode_name(m["name"]),
908911041 padding: decode_padding(m["padding"]),
@@ -9092,7 +11044,7 @@ defmodule TopLevel do
909211044 |> Map.new(fn {key, value} -> {key, SelectionDef.from_map(value)} end),
909311045 title: decode_title(m["title"]),
909411046 transform: m["transform"] && Enum.map(m["transform"], &Transform.from_map/1),
9095- width: m["width"],
11047+ width: m["width"] && decode_width(m["width"]),
909611048 layer: m["layer"] && Enum.map(m["layer"], &LayerSpec.from_map/1),
909711049 resolve: m["resolve"] && Resolve.from_map(m["resolve"]),
909811050 facet: m["facet"] && FacetMapping.from_map(m["facet"]),
No generated files match these filters.