Test case
1 generated file · +28 −4test/inputs/json/misc/0a91a.json
Melixirdefault / QuickType.ex+28 −4
| @@ -1591,6 +1591,12 @@ defmodule Payload do | ||
| 1591 | 1591 | def encode_before(value) when is_binary(value), do: value |
| 1592 | 1592 | def encode_before(_), do: {:error, "Unexpected type when encoding Payload.before"} |
| 1593 | 1593 | |
| 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 | + | |
| 1594 | 1600 | def decode_head(value) when is_binary(value), do: value |
| 1595 | 1601 | def decode_head(_), do: {:error, "Unexpected type when decoding Payload.head"} |
| 1596 | 1602 | |
| @@ -1603,6 +1609,18 @@ defmodule Payload do | ||
| 1603 | 1609 | def encode_master_branch(value) when is_binary(value), do: value |
| 1604 | 1610 | def encode_master_branch(_), do: {:error, "Unexpected type when encoding Payload.master_branch"} |
| 1605 | 1611 | |
| 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 | + | |
| 1606 | 1624 | def decode_pusher_type(value) when is_binary(value), do: value |
| 1607 | 1625 | def decode_pusher_type(_), do: {:error, "Unexpected type when decoding Payload.pusher_type"} |
| 1608 | 1626 | |
| @@ -1621,22 +1639,28 @@ defmodule Payload do | ||
| 1621 | 1639 | def encode_ref_type(value) when is_binary(value), do: value |
| 1622 | 1640 | def encode_ref_type(_), do: {:error, "Unexpected type when encoding Payload.ref_type"} |
| 1623 | 1641 | |
| 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 | + | |
| 1624 | 1648 | def from_map(m) do |
| 1625 | 1649 | %Payload{ |
| 1626 | 1650 | action: m["action"] && decode_action(m["action"]), |
| 1627 | 1651 | before: m["before"] && decode_before(m["before"]), |
| 1628 | 1652 | commits: m["commits"] && Enum.map(m["commits"], &Commit.from_map/1), |
| 1629 | 1653 | description: m["description"], |
| 1630 | - distinct_size: m["distinct_size"], | |
| 1654 | + distinct_size: m["distinct_size"] && decode_distinct_size(m["distinct_size"]), | |
| 1631 | 1655 | head: m["head"] && decode_head(m["head"]), |
| 1632 | 1656 | master_branch: m["master_branch"] && decode_master_branch(m["master_branch"]), |
| 1633 | - number: m["number"], | |
| 1657 | + number: m["number"] && decode_number(m["number"]), | |
| 1634 | 1658 | 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"]), | |
| 1636 | 1660 | pusher_type: m["pusher_type"] && decode_pusher_type(m["pusher_type"]), |
| 1637 | 1661 | ref: m["ref"] && decode_ref(m["ref"]), |
| 1638 | 1662 | ref_type: m["ref_type"] && decode_ref_type(m["ref_type"]), |
| 1639 | - size: m["size"], | |
| 1663 | + size: m["size"] && decode_size(m["size"]), | |
| 1640 | 1664 | } |
| 1641 | 1665 | end |
Test case
1 generated file · +14 −2test/inputs/json/misc/26c9c.json
Melixirdefault / QuickType.ex+14 −2
| @@ -265,6 +265,18 @@ defmodule Column do | ||
| 265 | 265 | def encode_render_type_name(value) when is_binary(value), do: value |
| 266 | 266 | def encode_render_type_name(_), do: {:error, "Unexpected type when encoding Column.render_type_name"} |
| 267 | 267 | |
| 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 | + | |
| 268 | 280 | def from_map(m) do |
| 269 | 281 | %Column{ |
| 270 | 282 | cached_contents: m["cachedContents"] && CachedContents.from_map(m["cachedContents"]), |
| @@ -276,8 +288,8 @@ defmodule Column do | ||
| 276 | 288 | name: decode_name(m["name"]), |
| 277 | 289 | position: decode_position(m["position"]), |
| 278 | 290 | 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"]), | |
| 281 | 293 | } |
| 282 | 294 | end |
Test case
1 generated file · +14 −2test/inputs/json/misc/27332.json
Melixirdefault / QuickType.ex+14 −2
| @@ -243,12 +243,24 @@ defmodule MediaEmbed do | ||
| 243 | 243 | def encode_content(value) when is_binary(value), do: value |
| 244 | 244 | def encode_content(_), do: {:error, "Unexpected type when encoding MediaEmbed.content"} |
| 245 | 245 | |
| 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 | + | |
| 246 | 258 | def from_map(m) do |
| 247 | 259 | %MediaEmbed{ |
| 248 | 260 | content: m["content"] && decode_content(m["content"]), |
| 249 | - height: m["height"], | |
| 261 | + height: m["height"] && decode_height(m["height"]), | |
| 250 | 262 | scrolling: m["scrolling"], |
| 251 | - width: m["width"], | |
| 263 | + width: m["width"] && decode_width(m["width"]), | |
| 252 | 264 | } |
| 253 | 265 | end |
Test case
1 generated file · +45 −5test/inputs/json/misc/31189.json
Melixirdefault / QuickType.ex+45 −5
| @@ -18,6 +18,38 @@ defmodule Rates do | ||
| 18 | 18 | super_reduced: float() | nil |
| 19 | 19 | } |
| 20 | 20 | |
| 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 | + | |
| 21 | 53 | def decode_standard(value) when is_float(value), do: value |
| 22 | 54 | def decode_standard(value) when is_integer(value), do: value |
| 23 | 55 | def decode_standard(_), do: {:error, "Unexpected type when decoding Rates.standard"} |
| @@ -26,14 +58,22 @@ defmodule Rates do | ||
| 26 | 58 | def encode_standard(value) when is_integer(value), do: value |
| 27 | 59 | def encode_standard(_), do: {:error, "Unexpected type when encoding Rates.standard"} |
| 28 | 60 | |
| 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 | + | |
| 29 | 69 | def from_map(m) do |
| 30 | 70 | %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"]), | |
| 35 | 75 | standard: decode_standard(m["standard"]), |
| 36 | - super_reduced: m["super_reduced"], | |
| 76 | + super_reduced: m["super_reduced"] && decode_super_reduced(m["super_reduced"]), | |
| 37 | 77 | } |
| 38 | 78 | end |
Test case
1 generated file · +14 −2test/inputs/json/misc/421d4.json
Melixirdefault / QuickType.ex+14 −2
| @@ -223,6 +223,18 @@ defmodule Column do | ||
| 223 | 223 | def encode_render_type_name(value) when is_binary(value), do: value |
| 224 | 224 | def encode_render_type_name(_), do: {:error, "Unexpected type when encoding Column.render_type_name"} |
| 225 | 225 | |
| 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 | + | |
| 226 | 238 | def from_map(m) do |
| 227 | 239 | %Column{ |
| 228 | 240 | cached_contents: m["cachedContents"] && CachedContents.from_map(m["cachedContents"]), |
| @@ -234,8 +246,8 @@ defmodule Column do | ||
| 234 | 246 | name: decode_name(m["name"]), |
| 235 | 247 | position: decode_position(m["position"]), |
| 236 | 248 | 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"]), | |
| 239 | 251 | } |
| 240 | 252 | end |
Test case
1 generated file · +14 −2test/inputs/json/misc/4d6fb.json
Melixirdefault / QuickType.ex+14 −2
| @@ -210,12 +210,24 @@ defmodule MediaEmbed do | ||
| 210 | 210 | def encode_content(value) when is_binary(value), do: value |
| 211 | 211 | def encode_content(_), do: {:error, "Unexpected type when encoding MediaEmbed.content"} |
| 212 | 212 | |
| 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 | + | |
| 213 | 225 | def from_map(m) do |
| 214 | 226 | %MediaEmbed{ |
| 215 | 227 | content: m["content"] && decode_content(m["content"]), |
| 216 | - height: m["height"], | |
| 228 | + height: m["height"] && decode_height(m["height"]), | |
| 217 | 229 | scrolling: m["scrolling"], |
| 218 | - width: m["width"], | |
| 230 | + width: m["width"] && decode_width(m["width"]), | |
| 219 | 231 | } |
| 220 | 232 | end |
Test case
1 generated file · +14 −2test/inputs/json/misc/5f7fe.json
Melixirdefault / QuickType.ex+14 −2
| @@ -264,6 +264,18 @@ defmodule Column do | ||
| 264 | 264 | def encode_position(value) when is_integer(value), do: value |
| 265 | 265 | def encode_position(_), do: {:error, "Unexpected type when encoding Column.position"} |
| 266 | 266 | |
| 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 | + | |
| 267 | 279 | def from_map(m) do |
| 268 | 280 | %Column{ |
| 269 | 281 | cached_contents: m["cachedContents"] && CachedContents.from_map(m["cachedContents"]), |
| @@ -275,8 +287,8 @@ defmodule Column do | ||
| 275 | 287 | name: decode_name(m["name"]), |
| 276 | 288 | position: decode_position(m["position"]), |
| 277 | 289 | 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"]), | |
| 280 | 292 | } |
| 281 | 293 | end |
Test case
1 generated file · +14 −2test/inputs/json/misc/617e8.json
Melixirdefault / QuickType.ex+14 −2
| @@ -271,6 +271,18 @@ defmodule Column do | ||
| 271 | 271 | def encode_position(value) when is_integer(value), do: value |
| 272 | 272 | def encode_position(_), do: {:error, "Unexpected type when encoding Column.position"} |
| 273 | 273 | |
| 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 | + | |
| 274 | 286 | def from_map(m) do |
| 275 | 287 | %Column{ |
| 276 | 288 | cached_contents: m["cachedContents"] && CachedContents.from_map(m["cachedContents"]), |
| @@ -283,8 +295,8 @@ defmodule Column do | ||
| 283 | 295 | name: decode_name(m["name"]), |
| 284 | 296 | position: decode_position(m["position"]), |
| 285 | 297 | 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"]), | |
| 288 | 300 | } |
| 289 | 301 | end |
Test case
1 generated file · +14 −2test/inputs/json/misc/6de06.json
Melixirdefault / QuickType.ex+14 −2
| @@ -201,12 +201,24 @@ defmodule MediaEmbed do | ||
| 201 | 201 | def encode_content(value) when is_binary(value), do: value |
| 202 | 202 | def encode_content(_), do: {:error, "Unexpected type when encoding MediaEmbed.content"} |
| 203 | 203 | |
| 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 | + | |
| 204 | 216 | def from_map(m) do |
| 205 | 217 | %MediaEmbed{ |
| 206 | 218 | content: m["content"] && decode_content(m["content"]), |
| 207 | - height: m["height"], | |
| 219 | + height: m["height"] && decode_height(m["height"]), | |
| 208 | 220 | scrolling: m["scrolling"], |
| 209 | - width: m["width"], | |
| 221 | + width: m["width"] && decode_width(m["width"]), | |
| 210 | 222 | } |
| 211 | 223 | end |
Test case
1 generated file · +14 −2test/inputs/json/misc/a3d8c.json
Melixirdefault / QuickType.ex+14 −2
| @@ -264,6 +264,18 @@ defmodule Column do | ||
| 264 | 264 | def encode_position(value) when is_integer(value), do: value |
| 265 | 265 | def encode_position(_), do: {:error, "Unexpected type when encoding Column.position"} |
| 266 | 266 | |
| 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 | + | |
| 267 | 279 | def from_map(m) do |
| 268 | 280 | %Column{ |
| 269 | 281 | cached_contents: m["cachedContents"] && CachedContents.from_map(m["cachedContents"]), |
| @@ -275,8 +287,8 @@ defmodule Column do | ||
| 275 | 287 | name: decode_name(m["name"]), |
| 276 | 288 | position: decode_position(m["position"]), |
| 277 | 289 | 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"]), | |
| 280 | 292 | } |
| 281 | 293 | end |
Test case
1 generated file · +14 −2test/inputs/json/misc/be234.json
Melixirdefault / QuickType.ex+14 −2
| @@ -244,12 +244,24 @@ defmodule MediaEmbed do | ||
| 244 | 244 | def encode_content(value) when is_binary(value), do: value |
| 245 | 245 | def encode_content(_), do: {:error, "Unexpected type when encoding MediaEmbed.content"} |
| 246 | 246 | |
| 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 | + | |
| 247 | 259 | def from_map(m) do |
| 248 | 260 | %MediaEmbed{ |
| 249 | 261 | content: m["content"] && decode_content(m["content"]), |
| 250 | - height: m["height"], | |
| 262 | + height: m["height"] && decode_height(m["height"]), | |
| 251 | 263 | scrolling: m["scrolling"], |
| 252 | - width: m["width"], | |
| 264 | + width: m["width"] && decode_width(m["width"]), | |
| 253 | 265 | } |
| 254 | 266 | end |
Test case
1 generated file · +49 −7test/inputs/json/misc/e8b04.json
Melixirdefault / QuickType.ex+49 −7
| @@ -634,14 +634,26 @@ defmodule ChildMetadata do | ||
| 634 | 634 | unified_version: integer() | nil |
| 635 | 635 | } |
| 636 | 636 | |
| 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 | + | |
| 637 | 649 | def from_map(m) do |
| 638 | 650 | %ChildMetadata{ |
| 639 | 651 | custom_values: m["customValues"], |
| 640 | 652 | freeform: m["freeform"], |
| 641 | - include_auto: m["includeAuto"], | |
| 653 | + include_auto: m["includeAuto"] && decode_include_auto(m["includeAuto"]), | |
| 642 | 654 | operator: m["operator"] && MetadataOperator.decode(m["operator"]), |
| 643 | 655 | 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"]), | |
| 645 | 657 | } |
| 646 | 658 | end |
| 647 | 659 | |
| @@ -1650,6 +1662,12 @@ defmodule Owner do | ||
| 1650 | 1662 | def encode_id(value) when is_binary(value), do: value |
| 1651 | 1663 | def encode_id(_), do: {:error, "Unexpected type when encoding Owner.id"} |
| 1652 | 1664 | |
| 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 | + | |
| 1653 | 1671 | def decode_profile_image_url_large(value) when is_binary(value), do: value |
| 1654 | 1672 | def decode_profile_image_url_large(_), do: {:error, "Unexpected type when decoding Owner.profile_image_url_large"} |
| 1655 | 1673 | |
| @@ -1679,7 +1697,7 @@ defmodule Owner do | ||
| 1679 | 1697 | display_name: decode_display_name(m["displayName"]), |
| 1680 | 1698 | flags: m["flags"], |
| 1681 | 1699 | 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"]), | |
| 1683 | 1701 | profile_image_url_large: m["profileImageUrlLarge"] && decode_profile_image_url_large(m["profileImageUrlLarge"]), |
| 1684 | 1702 | profile_image_url_medium: m["profileImageUrlMedium"] && decode_profile_image_url_medium(m["profileImageUrlMedium"]), |
| 1685 | 1703 | profile_image_url_small: m["profileImageUrlSmall"] && decode_profile_image_url_small(m["profileImageUrlSmall"]), |
| @@ -2148,6 +2166,12 @@ defmodule TopLevelElement do | ||
| 2148 | 2166 | def encode_id(value) when is_binary(value), do: value |
| 2149 | 2167 | def encode_id(_), do: {:error, "Unexpected type when encoding TopLevelElement.id"} |
| 2150 | 2168 | |
| 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 | + | |
| 2151 | 2175 | def decode_locale(value) when is_binary(value), do: value |
| 2152 | 2176 | def decode_locale(_), do: {:error, "Unexpected type when decoding TopLevelElement.locale"} |
| 2153 | 2177 | |
| @@ -2184,6 +2208,12 @@ defmodule TopLevelElement do | ||
| 2184 | 2208 | def encode_publication_append_enabled(value) when is_boolean(value), do: value |
| 2185 | 2209 | def encode_publication_append_enabled(_), do: {:error, "Unexpected type when encoding TopLevelElement.publication_append_enabled"} |
| 2186 | 2210 | |
| 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 | + | |
| 2187 | 2217 | def decode_publication_group(value) when is_integer(value), do: value |
| 2188 | 2218 | def decode_publication_group(_), do: {:error, "Unexpected type when decoding TopLevelElement.publication_group"} |
| 2189 | 2219 | |
| @@ -2208,6 +2238,18 @@ defmodule TopLevelElement do | ||
| 2208 | 2238 | def encode_row_class(value) when is_binary(value), do: value |
| 2209 | 2239 | def encode_row_class(_), do: {:error, "Unexpected type when encoding TopLevelElement.row_class"} |
| 2210 | 2240 | |
| 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 | + | |
| 2211 | 2253 | def decode_table_id(value) when is_integer(value), do: value |
| 2212 | 2254 | def decode_table_id(_), do: {:error, "Unexpected type when decoding TopLevelElement.table_id"} |
| 2213 | 2255 | |
| @@ -2245,7 +2287,7 @@ defmodule TopLevelElement do | ||
| 2245 | 2287 | hide_from_catalog: decode_hide_from_catalog(m["hideFromCatalog"]), |
| 2246 | 2288 | hide_from_data_json: decode_hide_from_data_json(m["hideFromDataJson"]), |
| 2247 | 2289 | id: decode_id(m["id"]), |
| 2248 | - index_updated_at: m["indexUpdatedAt"], | |
| 2290 | + index_updated_at: m["indexUpdatedAt"] && decode_index_updated_at(m["indexUpdatedAt"]), | |
| 2249 | 2291 | locale: decode_locale(m["locale"]), |
| 2250 | 2292 | metadata: TopLevelMetadata.from_map(m["metadata"]), |
| 2251 | 2293 | moderation_status: m["moderationStatus"], |
| @@ -2257,15 +2299,15 @@ defmodule TopLevelElement do | ||
| 2257 | 2299 | owner: Owner.from_map(m["owner"]), |
| 2258 | 2300 | provenance: Provenance.decode(m["provenance"]), |
| 2259 | 2301 | publication_append_enabled: decode_publication_append_enabled(m["publicationAppendEnabled"]), |
| 2260 | - publication_date: m["publicationDate"], | |
| 2302 | + publication_date: m["publicationDate"] && decode_publication_date(m["publicationDate"]), | |
| 2261 | 2303 | publication_group: decode_publication_group(m["publicationGroup"]), |
| 2262 | 2304 | publication_stage: PublicationStage.decode(m["publicationStage"]), |
| 2263 | 2305 | ratings: m["ratings"] && Ratings.from_map(m["ratings"]), |
| 2264 | 2306 | resource_name: m["resourceName"] && decode_resource_name(m["resourceName"]), |
| 2265 | 2307 | rights: Enum.map(m["rights"], &Right.decode/1), |
| 2266 | 2308 | 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"]), | |
| 2269 | 2311 | rows_updated_by: m["rowsUpdatedBy"] && RowsUpdatedBy.decode(m["rowsUpdatedBy"]), |
| 2270 | 2312 | table_author: TableAuthor.from_map(m["tableAuthor"]), |
| 2271 | 2313 | table_id: decode_table_id(m["tableId"]), |
Test case
1 generated file · +14 −2test/inputs/json/misc/f74d5.json
Melixirdefault / QuickType.ex+14 −2
| @@ -264,6 +264,18 @@ defmodule Column do | ||
| 264 | 264 | def encode_position(value) when is_integer(value), do: value |
| 265 | 265 | def encode_position(_), do: {:error, "Unexpected type when encoding Column.position"} |
| 266 | 266 | |
| 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 | + | |
| 267 | 279 | def from_map(m) do |
| 268 | 280 | %Column{ |
| 269 | 281 | cached_contents: m["cachedContents"] && CachedContents.from_map(m["cachedContents"]), |
| @@ -275,8 +287,8 @@ defmodule Column do | ||
| 275 | 287 | name: decode_name(m["name"]), |
| 276 | 288 | position: decode_position(m["position"]), |
| 277 | 289 | 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"]), | |
| 280 | 292 | } |
| 281 | 293 | end |
Test case
1 generated file · +14 −2test/inputs/json/misc/fcca3.json
Melixirdefault / QuickType.ex+14 −2
| @@ -298,6 +298,18 @@ defmodule Column do | ||
| 298 | 298 | def encode_position(value) when is_integer(value), do: value |
| 299 | 299 | def encode_position(_), do: {:error, "Unexpected type when encoding Column.position"} |
| 300 | 300 | |
| 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 | + | |
| 301 | 313 | def from_map(m) do |
| 302 | 314 | %Column{ |
| 303 | 315 | cached_contents: m["cachedContents"] && CachedContents.from_map(m["cachedContents"]), |
| @@ -310,8 +322,8 @@ defmodule Column do | ||
| 310 | 322 | name: decode_name(m["name"]), |
| 311 | 323 | position: decode_position(m["position"]), |
| 312 | 324 | 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"]), | |
| 315 | 327 | } |
| 316 | 328 | end |
Test case
2 generated files · +2,101 −0test/inputs/json/priority/blns-object.json
Aobjective-c-compiledefault / QTTopLevel.h+628 −0
| @@ -0,0 +1,628 @@ | ||
| 1 | +// To parse this JSON: | |
| 2 | +// | |
| 3 | +// NSError *error; | |
| 4 | +// QTTopLevel *topLevel = [QTTopLevel fromJSON:json encoding:NSUTF8Encoding error:&error]; | |
| 5 | + | |
| 6 | +#import <Foundation/Foundation.h> | |
| 7 | + | |
| 8 | +@class QTTopLevel; | |
| 9 | +@class QTA; | |
| 10 | +@class QTB; | |
| 11 | +@class QTC; | |
| 12 | + | |
| 13 | +NS_ASSUME_NONNULL_BEGIN | |
| 14 | + | |
| 15 | +#pragma mark - Top-level marshaling functions | |
| 16 | + | |
| 17 | +QTTopLevel *_Nullable QTTopLevelFromData(NSData *data, NSError **error); | |
| 18 | +QTTopLevel *_Nullable QTTopLevelFromJSON(NSString *json, NSStringEncoding encoding, NSError **error); | |
| 19 | +NSData *_Nullable QTTopLevelToData(QTTopLevel *topLevel, NSError **error); | |
| 20 | +NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding encoding, NSError **error); | |
| 21 | + | |
| 22 | +#pragma mark - Object interfaces | |
| 23 | + | |
| 24 | +@interface QTTopLevel : NSObject | |
| 25 | +@property (nonatomic, strong) QTA *a; | |
| 26 | +@property (nonatomic, strong) QTB *b; | |
| 27 | +@property (nonatomic, strong) QTC *c; | |
| 28 | + | |
| 29 | ++ (_Nullable instancetype)fromJSON:(NSString *)json encoding:(NSStringEncoding)encoding error:(NSError *_Nullable *)error; | |
| 30 | ++ (_Nullable instancetype)fromData:(NSData *)data error:(NSError *_Nullable *)error; | |
| 31 | +- (NSString *_Nullable)toJSON:(NSStringEncoding)encoding error:(NSError *_Nullable *)error; | |
| 32 | +- (NSData *_Nullable)toData:(NSError *_Nullable *)error; | |
| 33 | +@end | |
| 34 | + | |
| 35 | +@interface QTA : NSObject | |
| 36 | +@property (nonatomic, copy) NSString *a; | |
| 37 | +@property (nonatomic, copy) NSString *a0; | |
| 38 | +@property (nonatomic, copy) NSString *a000; | |
| 39 | +@property (nonatomic, copy) NSString *a0000; | |
| 40 | +@property (nonatomic, copy) NSString *a1; | |
| 41 | +@property (nonatomic, copy) NSString *a100000000; | |
| 42 | +@property (nonatomic, copy) NSString *a1E02; | |
| 43 | +@property (nonatomic, copy) NSString *aAlert123T; | |
| 44 | +@property (nonatomic, copy) NSString *aFalse; | |
| 45 | +@property (nonatomic, copy) NSString *aHrefJava123456781112ScriptJavascriptAlert1XXXA; | |
| 46 | +@property (nonatomic, copy) NSString *aHrefJavascriptX09JavascriptAlert1IDFuzzelement1TestA; | |
| 47 | +@property (nonatomic, copy) NSString *aHrefJavascriptX0AJavascriptAlert1IDFuzzelement1TestA; | |
| 48 | +@property (nonatomic, copy) NSString *aHrefJavascriptX3AJavascriptAlert1IDFuzzelement1TestA; | |
| 49 | +@property (nonatomic, copy) NSString *aHrefX01JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 50 | +@property (nonatomic, copy) NSString *aHrefX05JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 51 | +@property (nonatomic, copy) NSString *aHrefX08JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 52 | +@property (nonatomic, copy) NSString *aHrefX09JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 53 | +@property (nonatomic, copy) NSString *aHrefX0CjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 54 | +@property (nonatomic, copy) NSString *aHrefX10JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 55 | +@property (nonatomic, copy) NSString *aHrefX11JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 56 | +@property (nonatomic, copy) NSString *aHrefX13JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 57 | +@property (nonatomic, copy) NSString *aHrefX17JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 58 | +@property (nonatomic, copy) NSString *aHrefX1FjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 59 | +@property (nonatomic, copy) NSString *aHrefXC2XA0JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 60 | +@property (nonatomic, copy) NSString *aHrefXE1X9AX80JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 61 | +@property (nonatomic, copy) NSString *aHrefXE1XA0X8EjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 62 | +@property (nonatomic, copy) NSString *aHrefXE2X80X83JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 63 | +@property (nonatomic, copy) NSString *aHrefXE2X80X84JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 64 | +@property (nonatomic, copy) NSString *aHrefXE2X80X86JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 65 | +@property (nonatomic, copy) NSString *aHrefXE2X80X87JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 66 | +@property (nonatomic, copy) NSString *aHrefXE2X80XA8JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 67 | +@property (nonatomic, copy) NSString *aNil; | |
| 68 | +@property (nonatomic, copy) NSString *aTRUE; | |
| 69 | +@property (nonatomic, copy) NSString *aTest; | |
| 70 | +@property (nonatomic, copy) NSString *aTrue; | |
| 71 | +@property (nonatomic, copy) NSString *abcDivStyleXExpX00RessionJavascriptAlert1DEF; | |
| 72 | +@property (nonatomic, copy) NSString *abcDivStyleXExpX5CressionJavascriptAlert1DEF; | |
| 73 | +@property (nonatomic, copy) NSString *abcDivStyleXX09ExpressionJavascriptAlert1DEF; | |
| 74 | +@property (nonatomic, copy) NSString *abcDivStyleXX0BexpressionJavascriptAlert1DEF; | |
| 75 | +@property (nonatomic, copy) NSString *abcDivStyleXX20ExpressionJavascriptAlert1DEF; | |
| 76 | +@property (nonatomic, copy) NSString *abcDivStyleXX3AexpressionJavascriptAlert1DEF; | |
| 77 | +@property (nonatomic, copy) NSString *abcDivStyleXXC2XA0ExpressionJavascriptAlert1DEF; | |
| 78 | +@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X80ExpressionJavascriptAlert1DEF; | |
| 79 | +@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X84ExpressionJavascriptAlert1DEF; | |
| 80 | +@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X89ExpressionJavascriptAlert1DEF; | |
| 81 | +@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X8BexpressionJavascriptAlert1DEF; | |
| 82 | +@property (nonatomic, copy) NSString *alert123; | |
| 83 | +@property (nonatomic, copy) NSString *alert123T; | |
| 84 | +@property (nonatomic, copy) NSString *alertXSS; | |
| 85 | +@property (nonatomic, copy) NSString *andU200BZEROWIDTHSPACEWhichAreInTheCCategoriesButAreOften; | |
| 86 | +@property (nonatomic, copy) NSString *another; | |
| 87 | +@property (nonatomic, copy) NSString *arsenalCanal; | |
| 88 | +@property (nonatomic, copy) NSString *autofocusOnkeyupJavascriptAlert123; | |
| 89 | +@property (nonatomic, copy) NSString *aux; | |
| 90 | +@property (nonatomic, copy) NSString *changingLengthWhenLowercased; | |
| 91 | +@property (nonatomic, copy) NSString *charactersWhichIncreaseInLength2To3BytesWhenLowercased; | |
| 92 | +@property (nonatomic, copy) NSString *classic; | |
| 93 | +@property (nonatomic, copy) NSString *commandInjectionRuby; | |
| 94 | +@property (nonatomic, copy) NSString *d; | |
| 95 | +@property (nonatomic, copy) NSString *dickVanDyke; | |
| 96 | +@property (nonatomic, copy) NSString *drHermanILibshitz; | |
| 97 | +@property (nonatomic, copy) NSString *empty; | |
| 98 | +@property (nonatomic, copy) NSString *envHome; | |
| 99 | +@property (nonatomic, copy) NSString *etcHosts; | |
| 100 | +@property (nonatomic, copy) NSString *etcPasswd00; | |
| 101 | +@property (nonatomic, copy) NSString *fontsAndHaveANumberOfSpecialBehaviors; | |
| 102 | +@property (nonatomic, copy) NSString *fooValBar; | |
| 103 | +@property (nonatomic, copy) NSString *home; | |
| 104 | +@property (nonatomic, copy) NSString *humanInjection; | |
| 105 | +@property (nonatomic, copy) NSString *iNVOkINGTHEFÈẸLINGOFCHÁOS; | |
| 106 | +@property (nonatomic, copy) NSString *ifImgSrcXOnerrorJavascriptAlert1; | |
| 107 | +@property (nonatomic, copy) NSString *ifScriptJavascriptAlert1Script; | |
| 108 | +@property (nonatomic, copy) NSString *imgSRCJavAscriptAlertXSS; | |
| 109 | +@property (nonatomic, copy) NSString *imgSRCJavX0AAscriptAlertXSS; | |
| 110 | +@property (nonatomic, copy) NSString *imgSRCJavX0DAscriptAlertXSS; | |
| 111 | +@property (nonatomic, copy) NSString *imgSrc106971189711599114105112116589710810111411640398883833941; | |
| 112 | +@property (nonatomic, copy) NSString *imgSrcX09XOnerrorJavascriptAlert1; | |
| 113 | +@property (nonatomic, copy) NSString *imgSrcX11XOnerrorJavascriptAlert1; | |
| 114 | +@property (nonatomic, copy) NSString *imgSrcXOnerrorX00JavascriptAlert1; | |
| 115 | +@property (nonatomic, copy) NSString *imgSrcXOnerrorX09JavascriptAlert1; | |
| 116 | +@property (nonatomic, copy) NSString *imgSrcXX09OnerrorJavascriptAlert1; | |
| 117 | +@property (nonatomic, copy) NSString *imgSrcXX10OnerrorJavascriptAlert1; | |
| 118 | +@property (nonatomic, copy) NSString *imgSrcXX11OnerrorJavascriptAlert1; | |
| 119 | +@property (nonatomic, copy) NSString *imgSrcXX12OnerrorJavascriptAlert1; | |
| 120 | +@property (nonatomic, copy) NSString *imgSrcXX13OnerrorJavascriptAlert1; | |
| 121 | +@property (nonatomic, copy) NSString *imgSrcXxxXX00OnerrorJavascriptAlert1; | |
| 122 | +@property (nonatomic, copy) NSString *imgSrcXxxXX0BonerrorJavascriptAlert1; | |
| 123 | +@property (nonatomic, copy) NSString *imgSrcXxxXX2FonerrorJavascriptAlert1; | |
| 124 | +@property (nonatomic, copy) NSString *imgX00SrcXOnerrorAlert1; | |
| 125 | +@property (nonatomic, copy) NSString *imgX10SrcXOnerrorJavascriptAlert1; | |
| 126 | +@property (nonatomic, copy) NSString *imgX13SrcXOnerrorJavascriptAlert1; | |
| 127 | +@property (nonatomic, copy) NSString *imgX32SrcXOnerrorJavascriptAlert1; | |
| 128 | +@property (nonatomic, copy) NSString *imgX39SrcXOnerrorJavascriptAlert1; | |
| 129 | +@property (nonatomic, copy) NSString *inf; | |
| 130 | +@property (nonatomic, copy) NSString *infinity; | |
| 131 | +@property (nonatomic, copy) NSString *innocuousStringsWhichMayBeBlockedByProfanityFiltersHTTPSEnWikipediaOrgWikiScunthorpeProblem; | |
| 132 | +@property (nonatomic, assign) BOOL isDontMakeAMap; | |
| 133 | +@property (nonatomic, copy) NSString *jimmyClitheroe; | |
| 134 | +@property (nonatomic, copy) NSString *kernelExit1; | |
| 135 | +@property (nonatomic, copy) NSString *knownCVEsAndVulnerabilities; | |
| 136 | +@property (nonatomic, copy) NSString *lightwaterCountryPark; | |
| 137 | +@property (nonatomic, copy) NSString *lpt2; | |
| 138 | +@property (nonatomic, copy) NSString *lpt3; | |
| 139 | +@property (nonatomic, copy) NSString *lsAl; | |
| 140 | +@property (nonatomic, copy) NSString *msdosWindowsSpecialFilenames; | |
| 141 | +@property (nonatomic, copy) NSString *nonWhitespaceC1ControlsU0080ThroughU0084AndU0086ThroughU009F; | |
| 142 | +@property (nonatomic, copy) NSString *none; | |
| 143 | +@property (nonatomic, copy) NSString *null; | |
| 144 | +@property (nonatomic, copy) NSString *one; | |
| 145 | +@property (nonatomic, copy) NSString *one0; | |
| 146 | +@property (nonatomic, copy) NSString *one1; | |
| 147 | +@property (nonatomic, copy) NSString *onfocusJaVaSCriptAlert123Autofocus; | |
| 148 | +@property (nonatomic, copy) NSString *or11; | |
| 149 | +@property (nonatomic, copy) NSString *penistoneCommunityChurch; | |
| 150 | +@property (nonatomic, copy) NSString *perlEPrintIMGSRCJava0ScriptAlertXSSOut; | |
| 151 | +@property (nonatomic, copy) NSString *prn; | |
| 152 | +@property (nonatomic, copy) NSString *romansInSussexCoUk; | |
| 153 | +@property (nonatomic, copy) NSString *s; | |
| 154 | +@property (nonatomic, copy) NSString *sUnSU; | |
| 155 | +@property (nonatomic, copy) NSString *scScriptRiptAlert123ScScriptRipt; | |
| 156 | +@property (nonatomic, copy) NSString *scriptAlert123ScriptX; | |
| 157 | +@property (nonatomic, copy) NSString *scriptInjection; | |
| 158 | +@property (nonatomic, copy) NSString *scriptSRCHTTPHaCkersOrgXSSJSB; | |
| 159 | +@property (nonatomic, copy) NSString *scriptSRCHTTPHaCkersOrgXSSJSSCRIPT; | |
| 160 | +@property (nonatomic, copy) NSString *scriptScriptAlert123Script; | |
| 161 | +@property (nonatomic, copy) NSString *scriptX00JavascriptAlert1Script; | |
| 162 | +@property (nonatomic, copy) NSString *scriptX09TypeTextJavascriptJavascriptAlert1Script; | |
| 163 | +@property (nonatomic, copy) NSString *scriptX0CjavascriptAlert1Script; | |
| 164 | +@property (nonatomic, copy) NSString *scriptX0DjavascriptAlert1Script; | |
| 165 | +@property (nonatomic, copy) NSString *scriptX20TypeTextJavascriptJavascriptAlert1Script; | |
| 166 | +@property (nonatomic, copy) NSString *scriptX3EtypeTextJavascriptJavascriptAlert1Script; | |
| 167 | +@property (nonatomic, copy) NSString *scriptXC2X85JavascriptAlert1Script; | |
| 168 | +@property (nonatomic, copy) NSString *scriptXC2XA0JavascriptAlert1Script; | |
| 169 | +@property (nonatomic, copy) NSString *scriptXE1X9AX80JavascriptAlert1Script; | |
| 170 | +@property (nonatomic, copy) NSString *scriptXE1XA0X8EjavascriptAlert1Script; | |
| 171 | +@property (nonatomic, copy) NSString *scriptXE2X80X81JavascriptAlert1Script; | |
| 172 | +@property (nonatomic, copy) NSString *scriptXE2X80X86JavascriptAlert1Script; | |
| 173 | +@property (nonatomic, copy) NSString *scriptXE2X80X89JavascriptAlert1Script; | |
| 174 | +@property (nonatomic, copy) NSString *scriptXE2X81X9FjavascriptAlert1Script; | |
| 175 | +@property (nonatomic, copy) NSString *scriptXEFXBBXBFjavascriptAlert1Script; | |
| 176 | +@property (nonatomic, copy) NSString *scriptXF0X90X96X9AjavascriptAlert1Script; | |
| 177 | +@property (nonatomic, copy) NSString *scriptXSSSRCHTTPHaCkersOrgXSSJSSCRIPT; | |
| 178 | +@property (nonatomic, copy) NSString *some; | |
| 179 | +@property (nonatomic, copy) NSString *some0; | |
| 180 | +@property (nonatomic, copy) NSString *sqlInjection; | |
| 181 | +@property (nonatomic, copy) NSString *stringWhichCanRevealSystemFilesWhenParsedByABadlyConfiguredXMLParser; | |
| 182 | +@property (nonatomic, copy) NSString *stringsThatTestForKnownVulnerabilities; | |
| 183 | +@property (nonatomic, copy) NSString *stringsWhichCanBeAccidentallyExpandedIntoDifferentStringsIfEvaluatedInTheWrongContextEGUsedAsAPrintfFormatStringOrViaPERLOrShellEvalMightExposeSensitiveDataFromTheProgramDoingTheInterpolationOrMightJustRepresentTheWrongString; | |
| 184 | +@property (nonatomic, copy) NSString *stringsWhichCanCallSystemCommandsWithinRubyRailsApplications; | |
| 185 | +@property (nonatomic, copy) NSString *stringsWhichConsistsOfJapaneseStyleEmoticonsWhichArePopularOnTheWeb; | |
| 186 | +@property (nonatomic, copy) NSString *stringsWhichContainBoldItalicEtcVersionsOfNormalCharacters; | |
| 187 | +@property (nonatomic, copy) NSString *stringsWhichContainCommonUnicodeSymbolsEGSmartQuotes; | |
| 188 | +@property (nonatomic, copy) NSString *stringsWhichContainEmojiShouldBeTheSameBehaviorAsTwoByteCharactersButNotAlways; | |
| 189 | +@property (nonatomic, copy) NSString *stringsWhichContainMisplacedQuotationMarksCanCauseEncodingErrors; | |
| 190 | +@property (nonatomic, copy) NSString *stringsWhichContainUnicodeSubscriptsSuperscriptsCanCauseRenderingIssues; | |
| 191 | +@property (nonatomic, copy) NSString *stringsWhichCrashedIMessageInVariousVersionsOfIOS; | |
| 192 | +@property (nonatomic, copy) NSString *stringsWhichMayCauseHumanToReinterpretWorldview; | |
| 193 | +@property (nonatomic, copy) NSString *superBowlXXX; | |
| 194 | +@property (nonatomic, copy) NSString *test; | |
| 195 | +@property (nonatomic, copy) NSString *textareaScriptAlert123Script; | |
| 196 | +@property (nonatomic, copy) NSString *the; | |
| 197 | +@property (nonatomic, copy) NSString *the0; | |
| 198 | +@property (nonatomic, copy) NSString *the00; | |
| 199 | +@property (nonatomic, copy) NSString *the000; | |
| 200 | +@property (nonatomic, copy) NSString *the0000; | |
| 201 | +@property (nonatomic, copy) NSString *the00Ɩ; | |
| 202 | +@property (nonatomic, copy) NSString *the0X0; | |
| 203 | +@property (nonatomic, copy) NSString *the1; | |
| 204 | +@property (nonatomic, copy) NSString *the10; | |
| 205 | +@property (nonatomic, copy) NSString *the100; | |
| 206 | +@property (nonatomic, copy) NSString *the1000; | |
| 207 | +@property (nonatomic, copy) NSString *the100000; | |
| 208 | +@property (nonatomic, copy) NSString *the100000000; | |
| 209 | +@property (nonatomic, copy) NSString *the11; | |
| 210 | +@property (nonatomic, copy) NSString *the12; | |
| 211 | +@property (nonatomic, copy) NSString *the123456789012345678901234567890123456789; | |
| 212 | +@property (nonatomic, copy) NSString *the13; | |
| 213 | +@property (nonatomic, copy) NSString *the14; | |
| 214 | +@property (nonatomic, copy) NSString *the15; | |
| 215 | +@property (nonatomic, copy) NSString *the16; | |
| 216 | +@property (nonatomic, copy) NSString *the17; | |
| 217 | +@property (nonatomic, copy) NSString *the18; | |
| 218 | +@property (nonatomic, copy) NSString *the19; | |
| 219 | +@property (nonatomic, copy) NSString *the1DROPTABLEUsers; | |
| 220 | +@property (nonatomic, copy) NSString *the1E02; | |
| 221 | +@property (nonatomic, copy) NSString *the1E2; | |
| 222 | +@property (nonatomic, copy) NSString *the1Qnan; | |
| 223 | +@property (nonatomic, copy) NSString *the1Snan; | |
| 224 | +@property (nonatomic, copy) NSString *the2; | |
| 225 | +@property (nonatomic, copy) NSString *the20; | |
| 226 | +@property (nonatomic, copy) NSString *the21; | |
| 227 | +@property (nonatomic, copy) NSString *the22; | |
| 228 | +@property (nonatomic, copy) NSString *the23; | |
| 229 | +@property (nonatomic, copy) NSString *the3; | |
| 230 | +@property (nonatomic, copy) NSString *the4; | |
| 231 | +@property (nonatomic, copy) NSString *the5; | |
| 232 | +@property (nonatomic, copy) NSString *the6; | |
| 233 | +@property (nonatomic, copy) NSString *the7; | |
| 234 | +@property (nonatomic, copy) NSString *the8; | |
| 235 | +@property (nonatomic, copy) NSString *the9; | |
| 236 | +@property (nonatomic, copy) NSString *the999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999; | |
| 237 | +@property (nonatomic, copy) NSString *theFalse; | |
| 238 | +@property (nonatomic, copy) NSString *theNextTwoLinesMayAppearToBeBlankOrMojibakeInSomeViewers; | |
| 239 | +@property (nonatomic, copy) NSString *theQuicKBrownFoXBeeeep; | |
| 240 | +@property (nonatomic, copy) NSString *theTest; | |
| 241 | +@property (nonatomic, copy) NSString *the٠١٢٣٤٥٦٧٨٩; | |
| 242 | +@property (nonatomic, copy) NSString *twoByteCharacters; | |
| 243 | +@property (nonatomic, copy) NSString *u0000U000AOrU000DNULLFCR; | |
| 244 | +@property (nonatomic, copy) NSString *uOncopyAlertCopyMeU; | |
| 245 | +@property (nonatomic, copy) NSString *undef; | |
| 246 | +@property (nonatomic, copy) NSString *unicodeFont; | |
| 247 | +@property (nonatomic, copy) NSString *unicodeNumbers; | |
| 248 | +@property (nonatomic, copy) NSString *unwantedInterpolation; | |
| 249 | +@property (nonatomic, copy) NSString *xLsAl; | |
| 250 | +@property (nonatomic, copy) NSString *zḀḶGO; | |
| 251 | +@property (nonatomic, copy) NSString *ªº; | |
| 252 | +@property (nonatomic, copy) NSString *çIÂ; | |
| 253 | +@property (nonatomic, copy) NSString *œÁØ; | |
| 254 | +@property (nonatomic, copy) NSString *œØπ; | |
| 255 | +@property (nonatomic, copy) NSString *ʖ; | |
| 256 | +@property (nonatomic, copy) NSString *הָיְתָהTestالصفحاتالتّحول; | |
| 257 | +@property (nonatomic, copy) NSString *ثمنفسسقطتوبالتحديدجزيرتيباستخدامأندنوإذهناالستاروتنصيبكانأهّلايطاليابريطانيافرنساقدأخذسليمانإتفاقيةبينمايذكرالحدودأيبعدمعاملةبولنداالإطلاقعلإيو; | |
| 258 | +@property (nonatomic, copy) NSString *ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็; | |
| 259 | +@property (nonatomic, copy) NSString *ⱥ; | |
| 260 | +@property (nonatomic, copy) NSString *ⱦ; | |
| 261 | +@property (nonatomic, copy) NSString *パーティーへ行かないか; | |
| 262 | +@property (nonatomic, copy) NSString *和製漢語; | |
| 263 | +@property (nonatomic, copy) NSString *田中さんにあげて下さい; | |
| 264 | +@property (nonatomic, copy) NSString *fifl; | |
| 265 | +@property (nonatomic, copy) NSString *ィ; | |
| 266 | +@end | |
| 267 | + | |
| 268 | +@interface QTB : NSObject | |
| 269 | +@property (nonatomic, copy) NSString *aHrefHTTPFooBarXYAImgAltImgSrcXXOnerrorJavascriptAlert1A; | |
| 270 | +@property (nonatomic, copy) NSString *aHrefJavascriptX00JavascriptAlert1IDFuzzelement1TestA; | |
| 271 | +@property (nonatomic, copy) NSString *aHrefJavascriptX0DJavascriptAlert1IDFuzzelement1TestA; | |
| 272 | +@property (nonatomic, copy) NSString *aHrefX02JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 273 | +@property (nonatomic, copy) NSString *aHrefX04JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 274 | +@property (nonatomic, copy) NSString *aHrefX0AjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 275 | +@property (nonatomic, copy) NSString *aHrefX0DjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 276 | +@property (nonatomic, copy) NSString *aHrefX0EjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 277 | +@property (nonatomic, copy) NSString *aHrefX0FjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 278 | +@property (nonatomic, copy) NSString *aHrefX16JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 279 | +@property (nonatomic, copy) NSString *aHrefX19JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 280 | +@property (nonatomic, copy) NSString *aHrefX1AjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 281 | +@property (nonatomic, copy) NSString *aHrefX1DjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 282 | +@property (nonatomic, copy) NSString *aHrefX1EjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 283 | +@property (nonatomic, copy) NSString *aHrefXE2X80X81JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 284 | +@property (nonatomic, copy) NSString *aHrefXE2X80X82JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 285 | +@property (nonatomic, copy) NSString *aHrefXE2X80XA9JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 286 | +@property (nonatomic, copy) NSString *aHrefXE2X80XAFjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 287 | +@property (nonatomic, copy) NSString *abcDivStyleXExpressionX5CJavascriptAlert1DEF; | |
| 288 | +@property (nonatomic, copy) NSString *abcDivStyleXX0AexpressionJavascriptAlert1DEF; | |
| 289 | +@property (nonatomic, copy) NSString *abcDivStyleXX0DexpressionJavascriptAlert1DEF; | |
| 290 | +@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X82ExpressionJavascriptAlert1DEF; | |
| 291 | +@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X83ExpressionJavascriptAlert1DEF; | |
| 292 | +@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X85ExpressionJavascriptAlert1DEF; | |
| 293 | +@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X87ExpressionJavascriptAlert1DEF; | |
| 294 | +@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X8AexpressionJavascriptAlert1DEF; | |
| 295 | +@property (nonatomic, copy) NSString *another; | |
| 296 | +@property (nonatomic, copy) NSString *appearInInput; | |
| 297 | +@property (nonatomic, copy) NSString *ath0; | |
| 298 | +@property (nonatomic, copy) NSString *autofocusOnkeyupJavascriptAlert123; | |
| 299 | +@property (nonatomic, copy) NSString *b; | |
| 300 | +@property (nonatomic, copy) NSString *b100000; | |
| 301 | +@property (nonatomic, copy) NSString *bFALSE; | |
| 302 | +@property (nonatomic, copy) NSString *bIMGSRCOnmouseoverAlertXxs; | |
| 303 | +@property (nonatomic, copy) NSString *bNIL; | |
| 304 | +@property (nonatomic, copy) NSString *bScriptAlert123Script; | |
| 305 | +@property (nonatomic, copy) NSString *bTouchTmpBlnsFail; | |
| 306 | +@property (nonatomic, copy) NSString *basement; | |
| 307 | +@property (nonatomic, copy) NSString *butNow20CforMyGreatestTrick8M; | |
| 308 | +@property (nonatomic, copy) NSString *byteOrderMarksUFEFFAndUFFFEEachOnItsOwnLine; | |
| 309 | +@property (nonatomic, copy) NSString *com1; | |
| 310 | +@property (nonatomic, copy) NSString *com3; | |
| 311 | +@property (nonatomic, copy) NSString *commonlyMisinterpretedAsAdditionalGraphicCharacters; | |
| 312 | +@property (nonatomic, copy) NSString *con; | |
| 313 | +@property (nonatomic, copy) NSString *contextsDividedIntoThreeGroupsBasedOnUSLayoutKeyboardPosition; | |
| 314 | +@property (nonatomic, copy) NSString *creditHTTPSTwitterCOMJifaStatus625776454479970304; | |
| 315 | +@property (nonatomic, copy) NSString *devNullTouchTmpBlnsFailEcho; | |
| 316 | +@property (nonatomic, copy) NSString *empty; | |
| 317 | +@property (nonatomic, copy) NSString *evalPutsHelloWorld; | |
| 318 | +@property (nonatomic, copy) NSString *expression; | |
| 319 | +@property (nonatomic, copy) NSString *file; | |
| 320 | +@property (nonatomic, copy) NSString *fileInclusion; | |
| 321 | +@property (nonatomic, copy) NSString *fooValBar; | |
| 322 | +@property (nonatomic, copy) NSString *generalCategoryCFInUnicode800; | |
| 323 | +@property (nonatomic, copy) NSString *hEWHOWAĮTSBEHINDTHEWALḼ; | |
| 324 | +@property (nonatomic, copy) NSString *help; | |
| 325 | +@property (nonatomic, copy) NSString *httpA3030; | |
| 326 | +@property (nonatomic, copy) NSString *iOSVulnerabilities; | |
| 327 | +@property (nonatomic, copy) NSString *ifYouReReadingThisYouVeBeenInAComaForAlmost20YearsNowWeReTryingANewTechniqueWeDonTKnowWhereThisMessageWillEndUpInYourDreamButWeHopeItWorksPleaseWakeUpWeMissYou; | |
| 328 | +@property (nonatomic, copy) NSString *iframeSrcHTTPHaCkersOrgScriptletHTML; | |
| 329 | +@property (nonatomic, copy) NSString *imgSRC14JavascriptAlertXSS; | |
| 330 | +@property (nonatomic, copy) NSString *imgSRCJavX09AscriptAlertXSS; | |
| 331 | +@property (nonatomic, copy) NSString *imgSRCOnmouseoverAlertXxs; | |
| 332 | +@property (nonatomic, copy) NSString *imgSRCX6AX61X76X61X73X63X72X69X70X74X3AX61X6CX65X72X74X28X27X58X53X53X27X29; | |
| 333 | +@property (nonatomic, copy) NSString *imgSrc00001060000097000011800000970000115000009900001140000105000011200001160000058000009700001080000101000011400001160000040000003900000880000083000008300000390000041; | |
| 334 | +@property (nonatomic, copy) NSString *imgSrcX00XOnerrorJavascriptAlert1; | |
| 335 | +@property (nonatomic, copy) NSString *imgSrcXOnerrorX11JavascriptAlert1; | |
| 336 | +@property (nonatomic, copy) NSString *imgSrcXOnerrorX12JavascriptAlert1; | |
| 337 | +@property (nonatomic, copy) NSString *imgSrcXxxXX0AonerrorJavascriptAlert1; | |
| 338 | +@property (nonatomic, copy) NSString *imgSrcXxxXX0ConerrorJavascriptAlert1; | |
| 339 | +@property (nonatomic, copy) NSString *imgSrcXxxXX0DonerrorJavascriptAlert1; | |
| 340 | +@property (nonatomic, copy) NSString *imgX00SrcXOnerrorJavascriptAlert1; | |
| 341 | +@property (nonatomic, copy) NSString *imgX11SrcXOnerrorJavascriptAlert1; | |
| 342 | +@property (nonatomic, copy) NSString *imgX12SrcXOnerrorJavascriptAlert1; | |
| 343 | +@property (nonatomic, copy) NSString *imgX47SrcXOnerrorJavascriptAlert1; | |
| 344 | +@property (nonatomic, copy) NSString *ircSpecificStrings; | |
| 345 | +@property (nonatomic, assign) BOOL isDontMakeAMap; | |
| 346 | +@property (nonatomic, copy) NSString *japaneseEmoticons; | |
| 347 | +@property (nonatomic, copy) NSString *kernelExecLsAl; | |
| 348 | +@property (nonatomic, copy) NSString *lindaCallahan; | |
| 349 | +@property (nonatomic, copy) NSString *nul; | |
| 350 | +@property (nonatomic, copy) NSString *null; | |
| 351 | +@property (nonatomic, copy) NSString *numericStrings; | |
| 352 | +@property (nonatomic, copy) NSString *oftenForbiddenToAppearInVariousTextBasedFileFormatsEGXML; | |
| 353 | +@property (nonatomic, copy) NSString *one; | |
| 354 | +@property (nonatomic, copy) NSString *onfocusJaVaSCriptAlert123Autofocus; | |
| 355 | +@property (nonatomic, copy) NSString *or111; | |
| 356 | +@property (nonatomic, copy) NSString *quotationMarks; | |
| 357 | +@property (nonatomic, copy) NSString *regionalIndicatorSymbols; | |
| 358 | +@property (nonatomic, copy) NSString *regionalIndicatorSymbolsCanBeDisplayedDifferentlyAcross; | |
| 359 | +@property (nonatomic, copy) NSString *reservedStrings; | |
| 360 | +@property (nonatomic, copy) NSString *scriptAlert123Script; | |
| 361 | +@property (nonatomic, copy) NSString *scriptAlert123ScriptX; | |
| 362 | +@property (nonatomic, copy) NSString *scriptAlertXSSSCRIPT; | |
| 363 | +@property (nonatomic, copy) NSString *scriptSRCHaCkersOrgJ; | |
| 364 | +@property (nonatomic, copy) NSString *scriptSrcJscriptSScript; | |
| 365 | +@property (nonatomic, copy) NSString *scriptX09JavascriptAlert1Script; | |
| 366 | +@property (nonatomic, copy) NSString *scriptX0AtypeTextJavascriptJavascriptAlert1Script; | |
| 367 | +@property (nonatomic, copy) NSString *scriptX0DtypeTextJavascriptJavascriptAlert1Script; | |
| 368 | +@property (nonatomic, copy) NSString *scriptX21JavascriptAlert1Script; | |
| 369 | +@property (nonatomic, copy) NSString *scriptX3BjavascriptAlert1Script; | |
| 370 | +@property (nonatomic, copy) NSString *scriptXE2X80X85JavascriptAlert1Script; | |
| 371 | +@property (nonatomic, copy) NSString *scriptXE2X80X87JavascriptAlert1Script; | |
| 372 | +@property (nonatomic, copy) NSString *scriptXE2X80X8AjavascriptAlert1Script; | |
| 373 | +@property (nonatomic, copy) NSString *scriptXE2X80XA8JavascriptAlert1Script; | |
| 374 | +@property (nonatomic, copy) NSString *scriptXE2X80XA9JavascriptAlert1Script; | |
| 375 | +@property (nonatomic, copy) NSString *scriptXE2X80XAFjavascriptAlert1Script; | |
| 376 | +@property (nonatomic, copy) NSString *scriptXE3X80X80JavascriptAlert1Script; | |
| 377 | +@property (nonatomic, copy) NSString *scunthorpeProblem; | |
| 378 | +@property (nonatomic, copy) NSString *some; | |
| 379 | +@property (nonatomic, copy) NSString *stringsThatMayOccurOnIRCClientsThatMakeSecurityProductsFreakOut; | |
| 380 | +@property (nonatomic, copy) NSString *stringsWhichAreReservedCharactersInMSDOSWindows; | |
| 381 | +@property (nonatomic, copy) NSString *stringsWhichAttemptToInvokeABenignScriptInjectionShowsVulnerabilityToXSS; | |
| 382 | +@property (nonatomic, copy) NSString *stringsWhichContainTextThatShouldBeRenderedRTLIfPossibleEGArabicHebrew; | |
| 383 | +@property (nonatomic, copy) NSString *stringsWhichContainTwoByteCharactersCanCauseRenderingIssuesOrCharacterLengthIssues; | |
| 384 | +@property (nonatomic, copy) NSString *stringsWhichContainUnicodeNumbersIfTheCodeIsLocalizedItShouldSeeTheInputAsNumeric; | |
| 385 | +@property (nonatomic, copy) NSString *stringsWhichMayBeUsedElsewhereInCode; | |
| 386 | +@property (nonatomic, copy) NSString *terminalEscapeCodes; | |
| 387 | +@property (nonatomic, copy) NSString *the; | |
| 388 | +@property (nonatomic, copy) NSString *the000; | |
| 389 | +@property (nonatomic, copy) NSString *the01000; | |
| 390 | +@property (nonatomic, copy) NSString *the08; | |
| 391 | +@property (nonatomic, copy) NSString *the09; | |
| 392 | +@property (nonatomic, copy) NSString *the0Xffffffffffffffff; | |
| 393 | +@property (nonatomic, copy) NSString *the1; | |
| 394 | +@property (nonatomic, copy) NSString *the100; | |
| 395 | +@property (nonatomic, copy) NSString *the1000; | |
| 396 | +@property (nonatomic, copy) NSString *the100000; | |
| 397 | +@property (nonatomic, copy) NSString *the100000000; | |
| 398 | +@property (nonatomic, copy) NSString *the1DROPTABLEUsers1; | |
| 399 | +@property (nonatomic, copy) NSString *the1Ind; | |
| 400 | +@property (nonatomic, copy) NSString *the1Inf; | |
| 401 | +@property (nonatomic, copy) NSString *the2; | |
| 402 | +@property (nonatomic, copy) NSString *the21474836481; | |
| 403 | +@property (nonatomic, copy) NSString *the22250738585072011E308; | |
| 404 | +@property (nonatomic, copy) NSString *the3; | |
| 405 | +@property (nonatomic, copy) NSString *theNextLineMayAppearToBeBlankMojibakeOrDingbatsInSomeViewers; | |
| 406 | +@property (nonatomic, copy) NSString *theNextLineMayAppearToBeBlankOrMojibakeInSomeViewers; | |
| 407 | +@property (nonatomic, copy) NSString *theNextLineMayBeFlaggedForTrailingWhitespaceInSomeViewers; | |
| 408 | +@property (nonatomic, copy) NSString *theScriptAlert123Script; | |
| 409 | +@property (nonatomic, copy) NSString *the123; | |
| 410 | +@property (nonatomic, copy) NSString *thisFileUnfortunatelyCannotExpressStringsContaining; | |
| 411 | +@property (nonatomic, copy) NSString *touchTmpBlnsFail; | |
| 412 | +@property (nonatomic, copy) NSString *touchTmpBlnsShellshock2Fail; | |
| 413 | +@property (nonatomic, copy) NSString *tysonGay; | |
| 414 | +@property (nonatomic, copy) NSString *unicodeSymbols; | |
| 415 | +@property (nonatomic, copy) NSString *x00ScriptJavascriptAlert1Script; | |
| 416 | +@property (nonatomic, copy) NSString *x3CscriptJavascriptAlert1Script; | |
| 417 | +@property (nonatomic, copy) NSString *åßƑÆ; | |
| 418 | +@property (nonatomic, copy) NSString *ɐnbᴉlɐⱯuƃɐɯƎɹolopꞱǝƎɹoqɐlꞱnꞱunpᴉpᴉɔuᴉɹodɯǝʇPoɯsnᴉǝOpPǝsꞱᴉlǝƂuᴉɔsᴉdᴉpɐɹnʇǝʇɔǝsuoɔꞱǝɯɐꞱᴉsɹolopƜnsdᴉƜǝɹo; | |
| 419 | +@property (nonatomic, copy) NSString *ωÇΜ; | |
| 420 | +@property (nonatomic, copy) NSString *ຈل͜ຈノヽຈل͜ຈノ; | |
| 421 | +@property (nonatomic, copy) NSString *ṱOINVOKèTHEHIVEMINDREPRESEǸTINGCHAOS; | |
| 422 | +@property (nonatomic, copy) NSString *社會科學院語學研究所; | |
| 423 | +@property (nonatomic, copy) NSString *部落格; | |
| 424 | +@property (nonatomic, copy) NSString *사회과학원어학연구소; | |
| 425 | +@property (nonatomic, copy) NSString *찦차를타고온펲시맨과쑛다리똠방각하; | |
| 426 | +@property (nonatomic, copy) NSString *ﷺ; | |
| 427 | +@property (nonatomic, copy) NSString *ロ_; | |
| 428 | +@end | |
| 429 | + | |
| 430 | +@interface QTC : NSObject | |
| 431 | +@property (nonatomic, copy) NSString *_1; | |
| 432 | +@property (nonatomic, copy) NSString *a; | |
| 433 | +@property (nonatomic, copy) NSString *aHrefX00JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 434 | +@property (nonatomic, copy) NSString *aHrefX03JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 435 | +@property (nonatomic, copy) NSString *aHrefX06JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 436 | +@property (nonatomic, copy) NSString *aHrefX07JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 437 | +@property (nonatomic, copy) NSString *aHrefX0BjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 438 | +@property (nonatomic, copy) NSString *aHrefX12JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 439 | +@property (nonatomic, copy) NSString *aHrefX14JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 440 | +@property (nonatomic, copy) NSString *aHrefX15JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 441 | +@property (nonatomic, copy) NSString *aHrefX18JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 442 | +@property (nonatomic, copy) NSString *aHrefX1BjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 443 | +@property (nonatomic, copy) NSString *aHrefX1CjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 444 | +@property (nonatomic, copy) NSString *aHrefX20JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 445 | +@property (nonatomic, copy) NSString *aHrefXE2X80X80JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 446 | +@property (nonatomic, copy) NSString *aHrefXE2X80X85JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 447 | +@property (nonatomic, copy) NSString *aHrefXE2X80X88JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 448 | +@property (nonatomic, copy) NSString *aHrefXE2X80X89JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 449 | +@property (nonatomic, copy) NSString *aHrefXE2X80X8AjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 450 | +@property (nonatomic, copy) NSString *aHrefXE2X81X9FjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 451 | +@property (nonatomic, copy) NSString *aHrefXE3X80X80JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 452 | +@property (nonatomic, copy) NSString *abcDivStyleXExpressionX00JavascriptAlert1DEF; | |
| 453 | +@property (nonatomic, copy) NSString *abcDivStyleXX00ExpressionJavascriptAlert1DEF; | |
| 454 | +@property (nonatomic, copy) NSString *abcDivStyleXX0CexpressionJavascriptAlert1DEF; | |
| 455 | +@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X81ExpressionJavascriptAlert1DEF; | |
| 456 | +@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X86ExpressionJavascriptAlert1DEF; | |
| 457 | +@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X88ExpressionJavascriptAlert1DEF; | |
| 458 | +@property (nonatomic, copy) NSString *abcDivStyleXXE3X80X80ExpressionJavascriptAlert1DEF; | |
| 459 | +@property (nonatomic, copy) NSString *abcDivStyleXXEFXBBXBFexpressionJavascriptAlert1DEF; | |
| 460 | +@property (nonatomic, copy) NSString *andU007FDEL; | |
| 461 | +@property (nonatomic, copy) NSString *another; | |
| 462 | +@property (nonatomic, copy) NSString *asciiPunctuationAllOfTheseCharactersMayNeedToBeEscapedInSome; | |
| 463 | +@property (nonatomic, copy) NSString *bodyOnloadAlertXSS; | |
| 464 | +@property (nonatomic, copy) NSString *c; | |
| 465 | +@property (nonatomic, copy) NSString *c00; | |
| 466 | +@property (nonatomic, copy) NSString *c000; | |
| 467 | +@property (nonatomic, copy) NSString *c1; | |
| 468 | +@property (nonatomic, copy) NSString *c100; | |
| 469 | +@property (nonatomic, copy) NSString *c100000; | |
| 470 | +@property (nonatomic, copy) NSString *c100000000; | |
| 471 | +@property (nonatomic, copy) NSString *c1E02; | |
| 472 | +@property (nonatomic, copy) NSString *cScriptAlert123Script; | |
| 473 | +@property (nonatomic, copy) NSString *cTrue; | |
| 474 | +@property (nonatomic, copy) NSString *clock; | |
| 475 | +@property (nonatomic, copy) NSString *com2; | |
| 476 | +@property (nonatomic, copy) NSString *com4; | |
| 477 | +@property (nonatomic, copy) NSString *craigCockburnSoftwareSpecialist; | |
| 478 | +@property (nonatomic, copy) NSString *dccSendStartkeylogger000; | |
| 479 | +@property (nonatomic, copy) NSString *emoji; | |
| 480 | +@property (nonatomic, copy) NSString *empty; | |
| 481 | +@property (nonatomic, copy) NSString *evaluate; | |
| 482 | +@property (nonatomic, copy) NSString *fooValBar; | |
| 483 | +@property (nonatomic, copy) NSString *hasOwnProperty; | |
| 484 | +@property (nonatomic, copy) NSString *hornimanMuseum; | |
| 485 | +@property (nonatomic, copy) NSString *httpWWWCumQcCA; | |
| 486 | +@property (nonatomic, copy) NSString *iOnwheelAlert1ScrollOverMeI; | |
| 487 | +@property (nonatomic, copy) NSString *imgABCSrcDXEOnerrorFAlert1; | |
| 488 | +@property (nonatomic, copy) NSString *imgOnmouseoverAlertXxs; | |
| 489 | +@property (nonatomic, copy) NSString *imgSCRIPTAlertXSSSCRIPT; | |
| 490 | +@property (nonatomic, copy) NSString *imgSRCJavascriptAlertStringFromCharCode888383; | |
| 491 | +@property (nonatomic, copy) NSString *imgSRCJavascriptAlertXSS; | |
| 492 | +@property (nonatomic, copy) NSString *imgSrcOnerrorAltJavascriptAlert1; | |
| 493 | +@property (nonatomic, copy) NSString *imgSrcX10XOnerrorJavascriptAlert1; | |
| 494 | +@property (nonatomic, copy) NSString *imgSrcX12XOnerrorJavascriptAlert1; | |
| 495 | +@property (nonatomic, copy) NSString *imgSrcX13XOnerrorJavascriptAlert1; | |
| 496 | +@property (nonatomic, copy) NSString *imgSrcX32XOnerrorJavascriptAlert1; | |
| 497 | +@property (nonatomic, copy) NSString *imgSrcX47XOnerrorJavascriptAlert1; | |
| 498 | +@property (nonatomic, copy) NSString *imgSrcXOnerrorAlert123; | |
| 499 | +@property (nonatomic, copy) NSString *imgSrcXOnerrorX10JavascriptAlert1; | |
| 500 | +@property (nonatomic, copy) NSString *imgSrcXOnerrorX32JavascriptAlert1; | |
| 501 | +@property (nonatomic, copy) NSString *imgSrcXScriptJavascriptAlert1Script; | |
| 502 | +@property (nonatomic, copy) NSString *imgSrcXxxXX09OnerrorJavascriptAlert1; | |
| 503 | +@property (nonatomic, copy) NSString *imgSrcXxxXX20OnerrorJavascriptAlert1; | |
| 504 | +@property (nonatomic, copy) NSString *imgSrcXxxXX22OnerrorJavascriptAlert1; | |
| 505 | +@property (nonatomic, copy) NSString *imgSrcXxxXX27OnerrorJavascriptAlert1; | |
| 506 | +@property (nonatomic, copy) NSString *imgX11SrcXOnerrorJavascriptAlert1; | |
| 507 | +@property (nonatomic, copy) NSString *imgX34SrcXOnerrorJavascriptAlert1; | |
| 508 | +@property (nonatomic, copy) NSString *imgX47SrcXOnerrorJavascriptAlert1; | |
| 509 | +@property (nonatomic, copy) NSString *infinity; | |
| 510 | +@property (nonatomic, assign) BOOL isDontMakeAMap; | |
| 511 | +@property (nonatomic, copy) NSString *javaSCriptAlert123; | |
| 512 | +@property (nonatomic, copy) NSString *lpt1; | |
| 513 | +@property (nonatomic, copy) NSString *ltScriptGtAlert3912339LtScriptGt; | |
| 514 | +@property (nonatomic, copy) NSString *magnaCumLaude; | |
| 515 | +@property (nonatomic, copy) NSString *medievalErectionOfParapets; | |
| 516 | +@property (nonatomic, copy) NSString *mocha; | |
| 517 | +@property (nonatomic, copy) NSString *naN; | |
| 518 | +@property (nonatomic, copy) NSString *nonWhitespaceC0ControlsU0001ThroughU0008U000EThroughU001F; | |
| 519 | +@property (nonatomic, copy) NSString *null; | |
| 520 | +@property (nonatomic, copy) NSString *one; | |
| 521 | +@property (nonatomic, copy) NSString *one00; | |
| 522 | +@property (nonatomic, copy) NSString *one100000; | |
| 523 | +@property (nonatomic, copy) NSString *one100000000; | |
| 524 | +@property (nonatomic, copy) NSString *onfocusJaVaSCriptAlert123Autofocus; | |
| 525 | +@property (nonatomic, copy) NSString *orReusedForInternalDelimitersOnTheTheoryThatTheyShouldNever; | |
| 526 | +@property (nonatomic, copy) NSString *plaintext; | |
| 527 | +@property (nonatomic, copy) NSString *powerلُلُصّبُلُلصّبُررًॣॣH冗; | |
| 528 | +@property (nonatomic, copy) NSString *rightToLeftStrings; | |
| 529 | +@property (nonatomic, copy) NSString *rosesAre031Mred0MVioletsAre034MblueHopeYouEnjoyTerminalHue; | |
| 530 | +@property (nonatomic, copy) NSString *s; | |
| 531 | +@property (nonatomic, copy) NSString *scriptAlert123Script; | |
| 532 | +@property (nonatomic, copy) NSString *scriptAlert123ScriptX; | |
| 533 | +@property (nonatomic, copy) NSString *scriptJavascriptAlert1Script; | |
| 534 | +@property (nonatomic, copy) NSString *scriptScriptAlert123Script; | |
| 535 | +@property (nonatomic, copy) NSString *scriptSrcJscriptSScript; | |
| 536 | +@property (nonatomic, copy) NSString *scriptX0AjavascriptAlert1Script; | |
| 537 | +@property (nonatomic, copy) NSString *scriptX0BjavascriptAlert1Script; | |
| 538 | +@property (nonatomic, copy) NSString *scriptX0CtypeTextJavascriptJavascriptAlert1Script; | |
| 539 | +@property (nonatomic, copy) NSString *scriptX20JavascriptAlert1Script; | |
| 540 | +@property (nonatomic, copy) NSString *scriptX2BjavascriptAlert1Script; | |
| 541 | +@property (nonatomic, copy) NSString *scriptX2FtypeTextJavascriptJavascriptAlert1Script; | |
| 542 | +@property (nonatomic, copy) NSString *scriptX7EjavascriptAlert1Script; | |
| 543 | +@property (nonatomic, copy) NSString *scriptXE2X80X80JavascriptAlert1Script; | |
| 544 | +@property (nonatomic, copy) NSString *scriptXE2X80X82JavascriptAlert1Script; | |
| 545 | +@property (nonatomic, copy) NSString *scriptXE2X80X83JavascriptAlert1Script; | |
| 546 | +@property (nonatomic, copy) NSString *scriptXE2X80X84JavascriptAlert1Script; | |
| 547 | +@property (nonatomic, copy) NSString *scriptXE2X80X88JavascriptAlert1Script; | |
| 548 | +@property (nonatomic, copy) NSString *scriptXE2X80X8BjavascriptAlert1Script; | |
| 549 | +@property (nonatomic, copy) NSString *scriptXEFXBFXAEjavascriptAlert1Script; | |
| 550 | +@property (nonatomic, copy) NSString *scriptXEFXBFXBEjavascriptAlert1Script; | |
| 551 | +@property (nonatomic, copy) NSString *scunthorpeGeneralHospital; | |
| 552 | +@property (nonatomic, copy) NSString *serverCodeInjection; | |
| 553 | +@property (nonatomic, copy) NSString *shitakeMushrooms; | |
| 554 | +@property (nonatomic, copy) NSString *some; | |
| 555 | +@property (nonatomic, copy) NSString *some00; | |
| 556 | +@property (nonatomic, copy) NSString *specialCharacters; | |
| 557 | +@property (nonatomic, copy) NSString *srcJaVaSCriptPrompt132; | |
| 558 | +@property (nonatomic, copy) NSString *stringsWhichCanBeInterpretedAsNumeric; | |
| 559 | +@property (nonatomic, copy) NSString *stringsWhichCanCauseASQLInjectionIfInputsAreNotSanitized; | |
| 560 | +@property (nonatomic, copy) NSString *stringsWhichCanCauseUserToPullInFilesThatShouldNotBeAPartOfAWebServer; | |
| 561 | +@property (nonatomic, copy) NSString *stringsWhichCanCauseUserToRunCodeOnServerAsAPrivilegedUserCFHTTPSNewsYcombinatorCOMItemID7665153; | |
| 562 | +@property (nonatomic, copy) NSString *stringsWhichContainCorruptedTextTheCorruptionWillNotAppearInNonHTMLTextHoweverViaHTTPWWWEeemoNet; | |
| 563 | +@property (nonatomic, copy) NSString *stringsWhichContainUnicodeWithAnUpsidedownEffectViaHTTPWWWUpsidedowntextCOM; | |
| 564 | +@property (nonatomic, copy) NSString *stringsWhichContainUnicodeWithUnusualPropertiesEGRightToLeftOverrideCFHTTPWWWUnicodeOrgChartsPDFU2000PDF; | |
| 565 | +@property (nonatomic, copy) NSString *stringsWhichPunishTheFoolsWhoUseCatTypeOnThisFile; | |
| 566 | +@property (nonatomic, copy) NSString *svgScript1231Alert123Script; | |
| 567 | +@property (nonatomic, copy) NSString *systemLsAl; | |
| 568 | +@property (nonatomic, copy) NSString *systemTouchTmpBlnsFail; | |
| 569 | +@property (nonatomic, copy) NSString *test; | |
| 570 | +@property (nonatomic, copy) NSString *testTest; | |
| 571 | +@property (nonatomic, copy) NSString *the; | |
| 572 | +@property (nonatomic, copy) NSString *the00; | |
| 573 | +@property (nonatomic, copy) NSString *the000; | |
| 574 | +@property (nonatomic, copy) NSString *the0TouchTmpBlnsShellshock1Fail; | |
| 575 | +@property (nonatomic, copy) NSString *the0Xabad1Dea; | |
| 576 | +@property (nonatomic, copy) NSString *the0Xffffffff; | |
| 577 | +@property (nonatomic, copy) NSString *the0️; | |
| 578 | +@property (nonatomic, copy) NSString *the0️1️2️3️4️5️6️7️8️9️; | |
| 579 | +@property (nonatomic, copy) NSString *the1; | |
| 580 | +@property (nonatomic, copy) NSString *the10; | |
| 581 | +@property (nonatomic, copy) NSString *the100; | |
| 582 | +@property (nonatomic, copy) NSString *the100000; | |
| 583 | +@property (nonatomic, copy) NSString *the100000000; | |
| 584 | +@property (nonatomic, copy) NSString *the11; | |
| 585 | +@property (nonatomic, copy) NSString *the12; | |
| 586 | +@property (nonatomic, copy) NSString *the13; | |
| 587 | +@property (nonatomic, copy) NSString *the1E02; | |
| 588 | +@property (nonatomic, copy) NSString *the1E2; | |
| 589 | +@property (nonatomic, copy) NSString *the1Ind; | |
| 590 | +@property (nonatomic, copy) NSString *the2; | |
| 591 | +@property (nonatomic, copy) NSString *the3; | |
| 592 | +@property (nonatomic, copy) NSString *the4; | |
| 593 | +@property (nonatomic, copy) NSString *the5; | |
| 594 | +@property (nonatomic, copy) NSString *the6; | |
| 595 | +@property (nonatomic, copy) NSString *the7; | |
| 596 | +@property (nonatomic, copy) NSString *the8; | |
| 597 | +@property (nonatomic, copy) NSString *the9; | |
| 598 | +@property (nonatomic, copy) NSString *the92233720368547758081; | |
| 599 | +@property (nonatomic, copy) NSString *theScriptAlert123Script; | |
| 600 | +@property (nonatomic, copy) NSString *the١٢٣; | |
| 601 | +@property (nonatomic, copy) NSString *titleOnpropertychangeJavascriptAlert1TitleTitleTitle; | |
| 602 | +@property (nonatomic, copy) NSString *treatedAsWhitespaceInSomeContexts; | |
| 603 | +@property (nonatomic, copy) NSString *trickUnicode; | |
| 604 | +@property (nonatomic, copy) NSString *undefined; | |
| 605 | +@property (nonatomic, copy) NSString *unicodeAdditionalControlCharactersAllOfTheCharactersWith; | |
| 606 | +@property (nonatomic, copy) NSString *unicodeSubscriptSuperscriptAccents; | |
| 607 | +@property (nonatomic, copy) NSString *unicodeUpsidedown; | |
| 608 | +@property (nonatomic, copy) NSString *user; | |
| 609 | +@property (nonatomic, copy) NSString *version; | |
| 610 | +@property (nonatomic, copy) NSString *version800PlusU0009HTU000BVTU000CFFU0085NEL; | |
| 611 | +@property (nonatomic, copy) NSString *whitespaceAllOfTheCharactersWithCategoryZsZlOrZpInUnicode; | |
| 612 | +@property (nonatomic, copy) NSString *xmlVersion10EncodingISO88591DOCTYPEFooELEMENTFooANYENTITYXxeSYSTEMFileEtcPasswdFooXxeFoo; | |
| 613 | +@property (nonatomic, copy) NSString *xxeInjectionXML; | |
| 614 | +@property (nonatomic, copy) NSString *zalgoText; | |
| 615 | +@property (nonatomic, copy) NSString *zz; | |
| 616 | +@property (nonatomic, copy) NSString *åíîïÓôÒúæ; | |
| 617 | +@property (nonatomic, copy) NSString *ω; | |
| 618 | +@property (nonatomic, copy) NSString *ёђѓєѕіїјљњћќѝўџабвгдежзийклмнопрстуфхцчшщъыьэюЯабвгдежзийклмнопрстуфхцчшщъыьэюя; | |
| 619 | +@property (nonatomic, copy) NSString *בְּרֵאשִׁיתבָּרָאאֱלֹהִיםאֵתהַשָּׁמַיִםוְאֵתהָאָרֶץ; | |
| 620 | +@property (nonatomic, copy) NSString *مُنَاقَشَةُسُبُلِاِسْتِخْدَامِاللُّغَةِفِيالنُّظُمِالْقَائِمَةِوَفِيميَخُصَّالتَّطْبِيقَاتُالْحاسُوبِيَّةُ; | |
| 621 | +@property (nonatomic, copy) NSString *ṯHENEZPERDIANHIVḘMINḌǪFCḤAƠSZALGO; | |
| 622 | +@property (nonatomic, copy) NSString *ノº_ºノ; | |
| 623 | +@property (nonatomic, copy) NSString *울란바토르; | |
| 624 | +@property (nonatomic, copy) NSString *theQuickBrownFoxJumpsOverTheLazyDog; | |
| 625 | +@property (nonatomic, copy) NSString *ノಥ益ಥノ; | |
| 626 | +@end | |
| 627 | + | |
| 628 | +NS_ASSUME_NONNULL_END |
Aobjective-c-compiledefault / QTTopLevel.m+1,473 −0
| @@ -0,0 +1,1473 @@ | ||
| 1 | +#import "QTTopLevel.h" | |
| 2 | + | |
| 3 | +#define λ(decl, expr) (^(decl) { return (expr); }) | |
| 4 | + | |
| 5 | +static id NSNullify(id _Nullable x) { | |
| 6 | + return (x == nil || x == NSNull.null) ? NSNull.null : x; | |
| 7 | +} | |
| 8 | + | |
| 9 | +NS_ASSUME_NONNULL_BEGIN | |
| 10 | + | |
| 11 | +@interface QTTopLevel (JSONConversion) | |
| 12 | ++ (instancetype)fromJSONDictionary:(NSDictionary *)dict; | |
| 13 | +- (NSDictionary *)JSONDictionary; | |
| 14 | +@end | |
| 15 | + | |
| 16 | +@interface QTA (JSONConversion) | |
| 17 | ++ (instancetype)fromJSONDictionary:(NSDictionary *)dict; | |
| 18 | +- (NSDictionary *)JSONDictionary; | |
| 19 | +@end | |
| 20 | + | |
| 21 | +@interface QTB (JSONConversion) | |
| 22 | ++ (instancetype)fromJSONDictionary:(NSDictionary *)dict; | |
| 23 | +- (NSDictionary *)JSONDictionary; | |
| 24 | +@end | |
| 25 | + | |
| 26 | +@interface QTC (JSONConversion) | |
| 27 | ++ (instancetype)fromJSONDictionary:(NSDictionary *)dict; | |
| 28 | +- (NSDictionary *)JSONDictionary; | |
| 29 | +@end | |
| 30 | + | |
| 31 | +#pragma mark - JSON serialization | |
| 32 | + | |
| 33 | +QTTopLevel *_Nullable QTTopLevelFromData(NSData *data, NSError **error) | |
| 34 | +{ | |
| 35 | + @try { | |
| 36 | + id json = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:error]; | |
| 37 | + return *error ? nil : [QTTopLevel fromJSONDictionary:json]; | |
| 38 | + } @catch (NSException *exception) { | |
| 39 | + *error = [NSError errorWithDomain:@"JSONSerialization" code:-1 userInfo:@{ @"exception": exception }]; | |
| 40 | + return nil; | |
| 41 | + } | |
| 42 | +} | |
| 43 | + | |
| 44 | +QTTopLevel *_Nullable QTTopLevelFromJSON(NSString *json, NSStringEncoding encoding, NSError **error) | |
| 45 | +{ | |
| 46 | + return QTTopLevelFromData([json dataUsingEncoding:encoding], error); | |
| 47 | +} | |
| 48 | + | |
| 49 | +NSData *_Nullable QTTopLevelToData(QTTopLevel *topLevel, NSError **error) | |
| 50 | +{ | |
| 51 | + @try { | |
| 52 | + id json = [topLevel JSONDictionary]; | |
| 53 | + NSData *data = [NSJSONSerialization dataWithJSONObject:json options:NSJSONWritingFragmentsAllowed error:error]; | |
| 54 | + return *error ? nil : data; | |
| 55 | + } @catch (NSException *exception) { | |
| 56 | + *error = [NSError errorWithDomain:@"JSONSerialization" code:-1 userInfo:@{ @"exception": exception }]; | |
| 57 | + return nil; | |
| 58 | + } | |
| 59 | +} | |
| 60 | + | |
| 61 | +NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding encoding, NSError **error) | |
| 62 | +{ | |
| 63 | + NSData *data = QTTopLevelToData(topLevel, error); | |
| 64 | + return data ? [[NSString alloc] initWithData:data encoding:encoding] : nil; | |
| 65 | +} | |
| 66 | + | |
| 67 | +@implementation QTTopLevel | |
| 68 | ++ (NSDictionary<NSString *, NSString *> *)properties | |
| 69 | +{ | |
| 70 | + static NSDictionary<NSString *, NSString *> *properties; | |
| 71 | + return properties = properties ? properties : @{ | |
| 72 | + @"a": @"a", | |
| 73 | + @"b": @"b", | |
| 74 | + @"c": @"c", | |
| 75 | + }; | |
| 76 | +} | |
| 77 | + | |
| 78 | ++ (_Nullable instancetype)fromData:(NSData *)data error:(NSError *_Nullable *)error | |
| 79 | +{ | |
| 80 | + return QTTopLevelFromData(data, error); | |
| 81 | +} | |
| 82 | + | |
| 83 | ++ (_Nullable instancetype)fromJSON:(NSString *)json encoding:(NSStringEncoding)encoding error:(NSError *_Nullable *)error | |
| 84 | +{ | |
| 85 | + return QTTopLevelFromJSON(json, encoding, error); | |
| 86 | +} | |
| 87 | + | |
| 88 | ++ (instancetype)fromJSONDictionary:(NSDictionary *)dict | |
| 89 | +{ | |
| 90 | + return [dict isKindOfClass:NSDictionary.class] ? [[QTTopLevel alloc] initWithJSONDictionary:dict] : nil; | |
| 91 | +} | |
| 92 | + | |
| 93 | +- (instancetype)initWithJSONDictionary:(NSDictionary *)dict | |
| 94 | +{ | |
| 95 | + if (self = [super init]) { | |
| 96 | + if (![dict[@"a"] isKindOfClass:NSDictionary.class]) return nil; | |
| 97 | + if (![dict[@"b"] isKindOfClass:NSDictionary.class]) return nil; | |
| 98 | + if (![dict[@"c"] isKindOfClass:NSDictionary.class]) return nil; | |
| 99 | + [self setValuesForKeysWithDictionary:dict]; | |
| 100 | + _a = [QTA fromJSONDictionary:(id)_a]; | |
| 101 | + if (!_a && dict[@"a"] && ![dict[@"a"] isKindOfClass:NSNull.class]) return nil; | |
| 102 | + _b = [QTB fromJSONDictionary:(id)_b]; | |
| 103 | + if (!_b && dict[@"b"] && ![dict[@"b"] isKindOfClass:NSNull.class]) return nil; | |
| 104 | + _c = [QTC fromJSONDictionary:(id)_c]; | |
| 105 | + if (!_c && dict[@"c"] && ![dict[@"c"] isKindOfClass:NSNull.class]) return nil; | |
| 106 | + } | |
| 107 | + return self; | |
| 108 | +} | |
| 109 | + | |
| 110 | +- (void)setValue:(nullable id)value forKey:(NSString *)key | |
| 111 | +{ | |
| 112 | + id resolved = QTTopLevel.properties[key]; | |
| 113 | + if (resolved) [super setValue:value forKey:resolved]; | |
| 114 | +} | |
| 115 | + | |
| 116 | +- (void)setNilValueForKey:(NSString *)key | |
| 117 | +{ | |
| 118 | + id resolved = QTTopLevel.properties[key]; | |
| 119 | + if (resolved) [super setValue:@(0) forKey:resolved]; | |
| 120 | +} | |
| 121 | + | |
| 122 | +- (NSDictionary *)JSONDictionary | |
| 123 | +{ | |
| 124 | + id dict = [[self dictionaryWithValuesForKeys:QTTopLevel.properties.allValues] mutableCopy]; | |
| 125 | + | |
| 126 | + [dict addEntriesFromDictionary:@{ | |
| 127 | + @"a": [_a JSONDictionary], | |
| 128 | + @"b": [_b JSONDictionary], | |
| 129 | + @"c": [_c JSONDictionary], | |
| 130 | + }]; | |
| 131 | + | |
| 132 | + return dict; | |
| 133 | +} | |
| 134 | + | |
| 135 | +- (NSData *_Nullable)toData:(NSError *_Nullable *)error | |
| 136 | +{ | |
| 137 | + return QTTopLevelToData(self, error); | |
| 138 | +} | |
| 139 | + | |
| 140 | +- (NSString *_Nullable)toJSON:(NSStringEncoding)encoding error:(NSError *_Nullable *)error | |
| 141 | +{ | |
| 142 | + return QTTopLevelToJSON(self, encoding, error); | |
| 143 | +} | |
| 144 | +@end | |
| 145 | + | |
| 146 | +@implementation QTA | |
| 147 | ++ (NSDictionary<NSString *, NSString *> *)properties | |
| 148 | +{ | |
| 149 | + static NSDictionary<NSString *, NSString *> *properties; | |
| 150 | + return properties = properties ? properties : @{ | |
| 151 | + @"!@#$%^&*()`~": @"a", | |
| 152 | + @"-0": @"a0", | |
| 153 | + @"0,00": @"a000", | |
| 154 | + @"0.0/0.0": @"a0000", | |
| 155 | + @"-1": @"a1", | |
| 156 | + @"1'000'000.00": @"a100000000", | |
| 157 | + @"1E02": @"a1E02", | |
| 158 | + @"';alert(123);t='": @"aAlert123T", | |
| 159 | + @"False": @"aFalse", | |
| 160 | + @"<a href=javascript:javascript:alert(1)>XXX</a>": @"aHrefJava123456781112ScriptJavascriptAlert1XXXA", | |
| 161 | + @"<a href=\"javascript\\x09:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefJavascriptX09JavascriptAlert1IDFuzzelement1TestA", | |
| 162 | + @"<a href=\"javascript\\x0A:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefJavascriptX0AJavascriptAlert1IDFuzzelement1TestA", | |
| 163 | + @"<a href=\"javascript\\x3A:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefJavascriptX3AJavascriptAlert1IDFuzzelement1TestA", | |
| 164 | + @"<a href=\"\\x01javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX01JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 165 | + @"<a href=\"\\x05javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX05JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 166 | + @"<a href=\"\\x08javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX08JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 167 | + @"<a href=\"\\x09javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX09JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 168 | + @"<a href=\"\\x0Cjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX0CjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 169 | + @"<a href=\"\\x10javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX10JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 170 | + @"<a href=\"\\x11javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX11JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 171 | + @"<a href=\"\\x13javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX13JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 172 | + @"<a href=\"\\x17javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX17JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 173 | + @"<a href=\"\\x1Fjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX1FjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 174 | + @"<a href=\"\\xC2\\xA0javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXC2XA0JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 175 | + @"<a href=\"\\xE1\\x9A\\x80javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE1X9AX80JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 176 | + @"<a href=\"\\xE1\\xA0\\x8Ejavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE1XA0X8EjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 177 | + @"<a href=\"\\xE2\\x80\\x83javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X83JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 178 | + @"<a href=\"\\xE2\\x80\\x84javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X84JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 179 | + @"<a href=\"\\xE2\\x80\\x86javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X86JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 180 | + @"<a href=\"\\xE2\\x80\\x87javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X87JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 181 | + @"<a href=\"\\xE2\\x80\\xA8javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80XA8JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 182 | + @"nil": @"aNil", | |
| 183 | + @"TRUE": @"aTRUE", | |
| 184 | + @"\u202btest\u202b": @"aTest", | |
| 185 | + @"True": @"aTrue", | |
| 186 | + @"ABC<div style=\"x:exp\\x00ression(javascript:alert(1)\">DEF": @"abcDivStyleXExpX00RessionJavascriptAlert1DEF", | |
| 187 | + @"ABC<div style=\"x:exp\\x5Cression(javascript:alert(1)\">DEF": @"abcDivStyleXExpX5CressionJavascriptAlert1DEF", | |
| 188 | + @"ABC<div style=\"x:\\x09expression(javascript:alert(1)\">DEF": @"abcDivStyleXX09ExpressionJavascriptAlert1DEF", | |
| 189 | + @"ABC<div style=\"x:\\x0Bexpression(javascript:alert(1)\">DEF": @"abcDivStyleXX0BexpressionJavascriptAlert1DEF", | |
| 190 | + @"ABC<div style=\"x:\\x20expression(javascript:alert(1)\">DEF": @"abcDivStyleXX20ExpressionJavascriptAlert1DEF", | |
| 191 | + @"ABC<div style=\"x\\x3Aexpression(javascript:alert(1)\">DEF": @"abcDivStyleXX3AexpressionJavascriptAlert1DEF", | |
| 192 | + @"ABC<div style=\"x:\\xC2\\xA0expression(javascript:alert(1)\">DEF": @"abcDivStyleXXC2XA0ExpressionJavascriptAlert1DEF", | |
| 193 | + @"ABC<div style=\"x:\\xE2\\x80\\x80expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X80ExpressionJavascriptAlert1DEF", | |
| 194 | + @"ABC<div style=\"x:\\xE2\\x80\\x84expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X84ExpressionJavascriptAlert1DEF", | |
| 195 | + @"ABC<div style=\"x:\\xE2\\x80\\x89expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X89ExpressionJavascriptAlert1DEF", | |
| 196 | + @"ABC<div style=\"x:\\xE2\\x80\\x8Bexpression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X8BexpressionJavascriptAlert1DEF", | |
| 197 | + @";alert(123);": @"alert123", | |
| 198 | + @"\";alert(123);t=\"": @"alert123T", | |
| 199 | + @"\\\";alert('XSS');//": @"alertXSS", | |
| 200 | + @"# and U+200B (ZERO WIDTH SPACE), which are in the C categories but are often": @"andU200BZEROWIDTHSPACEWhichAreInTheCCategoriesButAreOften", | |
| 201 | + @",": @"another", | |
| 202 | + @"Arsenal canal": @"arsenalCanal", | |
| 203 | + @"\" autofocus onkeyup=\"javascript:alert(123)": @"autofocusOnkeyupJavascriptAlert123", | |
| 204 | + @"AUX": @"aux", | |
| 205 | + @"#\tChanging length when lowercased": @"changingLengthWhenLowercased", | |
| 206 | + @"#\tCharacters which increase in length (2 to 3 bytes) when lowercased": @"charactersWhichIncreaseInLength2To3BytesWhenLowercased", | |
| 207 | + @"classic": @"classic", | |
| 208 | + @"#\tCommand Injection (Ruby)": @"commandInjectionRuby", | |
| 209 | + @"%d": @"d", | |
| 210 | + @"Dick Van Dyke": @"dickVanDyke", | |
| 211 | + @"Dr. Herman I. Libshitz": @"drHermanILibshitz", | |
| 212 | + @" ": @"empty", | |
| 213 | + @"$ENV{'HOME'}": @"envHome", | |
| 214 | + @"../../../../../../../../../../../etc/hosts": @"etcHosts", | |
| 215 | + @"../../../../../../../../../../../etc/passwd%00": @"etcPasswd00", | |
| 216 | + @"# fonts, and have a number of special behaviors": @"fontsAndHaveANumberOfSpecialBehaviors", | |
| 217 | + @"<foo val=`bar' />": @"fooValBar", | |
| 218 | + @"$HOME": @"home", | |
| 219 | + @"#\tHuman injection": @"humanInjection", | |
| 220 | + @"̡͓̞ͅI̗̘̦͝n͇͇͙v̮̫ok̲̫̙͈i̖͙̭̹̠̞n̡̻̮̣̺g̲͈͙̭͙̬͎ ̰t͔̦h̞̲e̢̤ ͍̬̲͖f̴̘͕̣è͖ẹ̥̩l͖͔͚i͓͚̦͠n͖͍̗͓̳̮g͍ ̨o͚̪͡f̘̣̬ ̖̘͖̟͙̮c҉͔̫͖͓͇͖ͅh̵̤̣͚͔á̗̼͕ͅo̼̣̥s̱͈̺̖̦̻͢.̛̖̞̠̫̰": @"iNVOkINGTHEFÈẸLINGOFCHÁOS", | |
| 221 | + @"<!--[if<img src=x onerror=javascript:alert(1)//]> -->": @"ifImgSrcXOnerrorJavascriptAlert1", | |
| 222 | + @"<!--[if]><script>javascript:alert(1)</script -->": @"ifScriptJavascriptAlert1Script", | |
| 223 | + @"<IMG SRC=\"jav ascript:alert('XSS');\">": @"imgSRCJavAscriptAlertXSS", | |
| 224 | + @"<IMG SRC=\"jav
ascript:alert('XSS');\">": @"imgSRCJavX0AAscriptAlertXSS", | |
| 225 | + @"<IMG SRC=\"jav
ascript:alert('XSS');\">": @"imgSRCJavX0DAscriptAlertXSS", | |
| 226 | + @"<IMG SRC=javascript:alert('XSS')>": @"imgSrc106971189711599114105112116589710810111411640398883833941", | |
| 227 | + @"<img src\\x09=x onerror=\"javascript:alert(1)\">": @"imgSrcX09XOnerrorJavascriptAlert1", | |
| 228 | + @"<img src\\x11=x onerror=\"javascript:alert(1)\">": @"imgSrcX11XOnerrorJavascriptAlert1", | |
| 229 | + @"<img src=x onerror=\\x00\"javascript:alert(1)\">": @"imgSrcXOnerrorX00JavascriptAlert1", | |
| 230 | + @"<img src=x onerror=\\x09\"javascript:alert(1)\">": @"imgSrcXOnerrorX09JavascriptAlert1", | |
| 231 | + @"<img src=x\\x09onerror=\"javascript:alert(1)\">": @"imgSrcXX09OnerrorJavascriptAlert1", | |
| 232 | + @"<img src=x\\x10onerror=\"javascript:alert(1)\">": @"imgSrcXX10OnerrorJavascriptAlert1", | |
| 233 | + @"<img src=x\\x11onerror=\"javascript:alert(1)\">": @"imgSrcXX11OnerrorJavascriptAlert1", | |
| 234 | + @"<img src=x\\x12onerror=\"javascript:alert(1)\">": @"imgSrcXX12OnerrorJavascriptAlert1", | |
| 235 | + @"<img src=x\\x13onerror=\"javascript:alert(1)\">": @"imgSrcXX13OnerrorJavascriptAlert1", | |
| 236 | + @"`\"'><img src=xxx:x \\x00onerror=javascript:alert(1)>": @"imgSrcXxxXX00OnerrorJavascriptAlert1", | |
| 237 | + @"`\"'><img src=xxx:x \\x0Bonerror=javascript:alert(1)>": @"imgSrcXxxXX0BonerrorJavascriptAlert1", | |
| 238 | + @"`\"'><img src=xxx:x \\x2Fonerror=javascript:alert(1)>": @"imgSrcXxxXX2FonerrorJavascriptAlert1", | |
| 239 | + @"<img \\x00src=x onerror=\"alert(1)\">": @"imgX00SrcXOnerrorAlert1", | |
| 240 | + @"<img\\x10src=x onerror=\"javascript:alert(1)\">": @"imgX10SrcXOnerrorJavascriptAlert1", | |
| 241 | + @"<img\\x13src=x onerror=\"javascript:alert(1)\">": @"imgX13SrcXOnerrorJavascriptAlert1", | |
| 242 | + @"<img\\x32src=x onerror=\"javascript:alert(1)\">": @"imgX32SrcXOnerrorJavascriptAlert1", | |
| 243 | + @"<img \\x39src=x onerror=\"javascript:alert(1)\">": @"imgX39SrcXOnerrorJavascriptAlert1", | |
| 244 | + @"INF": @"inf", | |
| 245 | + @"-Infinity": @"infinity", | |
| 246 | + @"#\tInnocuous strings which may be blocked by profanity filters (https://en.wikipedia.org/wiki/Scunthorpe_problem)": @"innocuousStringsWhichMayBeBlockedByProfanityFiltersHTTPSEnWikipediaOrgWikiScunthorpeProblem", | |
| 247 | + @"dontMakeAMap": @"isDontMakeAMap", | |
| 248 | + @"Jimmy Clitheroe": @"jimmyClitheroe", | |
| 249 | + @"Kernel.exit(1)": @"kernelExit1", | |
| 250 | + @"#\tKnown CVEs and Vulnerabilities": @"knownCVEsAndVulnerabilities", | |
| 251 | + @"Lightwater Country Park": @"lightwaterCountryPark", | |
| 252 | + @"LPT2": @"lpt2", | |
| 253 | + @"LPT3": @"lpt3", | |
| 254 | + @"`ls -al /`": @"lsAl", | |
| 255 | + @"#\tMSDOS/Windows Special Filenames": @"msdosWindowsSpecialFilenames", | |
| 256 | + @"# Non-whitespace C1 controls: U+0080 through U+0084 and U+0086 through U+009F.": @"nonWhitespaceC1ControlsU0080ThroughU0084AndU0086ThroughU009F", | |
| 257 | + @"None": @"none", | |
| 258 | + @"(null)": @"null", | |
| 259 | + @"'\"'": @"one", | |
| 260 | + @"0": @"one0", | |
| 261 | + @"1": @"one1", | |
| 262 | + @" onfocus=JaVaSCript:alert(123) autofocus": @"onfocusJaVaSCriptAlert123Autofocus", | |
| 263 | + @"' OR '1'='1": @"or11", | |
| 264 | + @"Penistone Community Church": @"penistoneCommunityChurch", | |
| 265 | + @"perl -e 'print \"<IMG SRC=java\\0script:alert(\\\"XSS\\\")>\";' > out": @"perlEPrintIMGSRCJava0ScriptAlertXSSOut", | |
| 266 | + @"PRN": @"prn", | |
| 267 | + @"RomansInSussex.co.uk": @"romansInSussexCoUk", | |
| 268 | + @"%s": @"s", | |
| 269 | + @"<<< %s(un='%s') = %u": @"sUnSU", | |
| 270 | + @"<sc<script>ript>alert(123)</sc</script>ript>": @"scScriptRiptAlert123ScScriptRipt", | |
| 271 | + @"\"><script>alert(123);</script x=\"": @"scriptAlert123ScriptX", | |
| 272 | + @"#\tScript Injection": @"scriptInjection", | |
| 273 | + @"<SCRIPT SRC=http://ha.ckers.org/xss.js?< B >": @"scriptSRCHTTPHaCkersOrgXSSJSB", | |
| 274 | + @"<SCRIPT/SRC=\"http://ha.ckers.org/xss.js\"></SCRIPT>": @"scriptSRCHTTPHaCkersOrgXSSJSSCRIPT", | |
| 275 | + @"</script><script>alert(123)</script>": @"scriptScriptAlert123Script", | |
| 276 | + @"\"`'><script>\\x00javascript:alert(1)</script>": @"scriptX00JavascriptAlert1Script", | |
| 277 | + @"<script\\x09type=\"text/javascript\">javascript:alert(1);</script>": @"scriptX09TypeTextJavascriptJavascriptAlert1Script", | |
| 278 | + @"\"`'><script>\\x0Cjavascript:alert(1)</script>": @"scriptX0CjavascriptAlert1Script", | |
| 279 | + @"\"`'><script>\\x0Djavascript:alert(1)</script>": @"scriptX0DjavascriptAlert1Script", | |
| 280 | + @"<script\\x20type=\"text/javascript\">javascript:alert(1);</script>": @"scriptX20TypeTextJavascriptJavascriptAlert1Script", | |
| 281 | + @"<script\\x3Etype=\"text/javascript\">javascript:alert(1);</script>": @"scriptX3EtypeTextJavascriptJavascriptAlert1Script", | |
| 282 | + @"\"`'><script>\\xC2\\x85javascript:alert(1)</script>": @"scriptXC2X85JavascriptAlert1Script", | |
| 283 | + @"\"`'><script>\\xC2\\xA0javascript:alert(1)</script>": @"scriptXC2XA0JavascriptAlert1Script", | |
| 284 | + @"\"`'><script>\\xE1\\x9A\\x80javascript:alert(1)</script>": @"scriptXE1X9AX80JavascriptAlert1Script", | |
| 285 | + @"\"`'><script>\\xE1\\xA0\\x8Ejavascript:alert(1)</script>": @"scriptXE1XA0X8EjavascriptAlert1Script", | |
| 286 | + @"\"`'><script>\\xE2\\x80\\x81javascript:alert(1)</script>": @"scriptXE2X80X81JavascriptAlert1Script", | |
| 287 | + @"\"`'><script>\\xE2\\x80\\x86javascript:alert(1)</script>": @"scriptXE2X80X86JavascriptAlert1Script", | |
| 288 | + @"\"`'><script>\\xE2\\x80\\x89javascript:alert(1)</script>": @"scriptXE2X80X89JavascriptAlert1Script", | |
| 289 | + @"\"`'><script>\\xE2\\x81\\x9Fjavascript:alert(1)</script>": @"scriptXE2X81X9FjavascriptAlert1Script", | |
| 290 | + @"\"`'><script>\\xEF\\xBB\\xBFjavascript:alert(1)</script>": @"scriptXEFXBBXBFjavascriptAlert1Script", | |
| 291 | + @"\"`'><script>\\xF0\\x90\\x96\\x9Ajavascript:alert(1)</script>": @"scriptXF0X90X96X9AjavascriptAlert1Script", | |
| 292 | + @"<SCRIPT/XSS SRC=\"http://ha.ckers.org/xss.js\"></SCRIPT>": @"scriptXSSSRCHTTPHaCkersOrgXSSJSSCRIPT", | |
| 293 | + @"(╯°□°)╯︵ ┻━┻)": @"some", | |
| 294 | + @"{0}": @"some0", | |
| 295 | + @"#\tSQL Injection": @"sqlInjection", | |
| 296 | + @"#\tString which can reveal system files when parsed by a badly configured XML parser": @"stringWhichCanRevealSystemFilesWhenParsedByABadlyConfiguredXMLParser", | |
| 297 | + @"#\tStrings that test for known vulnerabilities": @"stringsThatTestForKnownVulnerabilities", | |
| 298 | + @"#\tStrings which can be accidentally expanded into different strings if evaluated in the wrong context, e.g. used as a printf format string or via Perl or shell eval. Might expose sensitive data from the program doing the interpolation, or might just represent the wrong string.": @"stringsWhichCanBeAccidentallyExpandedIntoDifferentStringsIfEvaluatedInTheWrongContextEGUsedAsAPrintfFormatStringOrViaPERLOrShellEvalMightExposeSensitiveDataFromTheProgramDoingTheInterpolationOrMightJustRepresentTheWrongString", | |
| 299 | + @"#\tStrings which can call system commands within Ruby/Rails applications": @"stringsWhichCanCallSystemCommandsWithinRubyRailsApplications", | |
| 300 | + @"#\tStrings which consists of Japanese-style emoticons which are popular on the web": @"stringsWhichConsistsOfJapaneseStyleEmoticonsWhichArePopularOnTheWeb", | |
| 301 | + @"#\tStrings which contain bold/italic/etc. versions of normal characters": @"stringsWhichContainBoldItalicEtcVersionsOfNormalCharacters", | |
| 302 | + @"#\tStrings which contain common unicode symbols (e.g. smart quotes)": @"stringsWhichContainCommonUnicodeSymbolsEGSmartQuotes", | |
| 303 | + @"#\tStrings which contain Emoji; should be the same behavior as two-byte characters, but not always": @"stringsWhichContainEmojiShouldBeTheSameBehaviorAsTwoByteCharactersButNotAlways", | |
| 304 | + @"#\tStrings which contain misplaced quotation marks; can cause encoding errors": @"stringsWhichContainMisplacedQuotationMarksCanCauseEncodingErrors", | |
| 305 | + @"#\tStrings which contain unicode subscripts/superscripts; can cause rendering issues": @"stringsWhichContainUnicodeSubscriptsSuperscriptsCanCauseRenderingIssues", | |
| 306 | + @"#\tStrings which crashed iMessage in various versions of iOS": @"stringsWhichCrashedIMessageInVariousVersionsOfIOS", | |
| 307 | + @"#\tStrings which may cause human to reinterpret worldview": @"stringsWhichMayCauseHumanToReinterpretWorldview", | |
| 308 | + @"Super Bowl XXX": @"superBowlXXX", | |
| 309 | + @"\u202a\u202atest\u202a": @"test", | |
| 310 | + @"</textarea><script>alert(123)</script>": @"textareaScriptAlert123Script", | |
| 311 | + @"'": @"the", | |
| 312 | + @"+0": @"the0", | |
| 313 | + @"0..0": @"the00", | |
| 314 | + @"0,0,0": @"the000", | |
| 315 | + @"0,0/0,0": @"the0000", | |
| 316 | + @"00˙Ɩ$-": @"the00Ɩ", | |
| 317 | + @"0x0": @"the0X0", | |
| 318 | + @",./;'[]\\-=": @"the1", | |
| 319 | + @"1/0": @"the10", | |
| 320 | + @"1.00": @"the100", | |
| 321 | + @"1.0/0.0": @"the1000", | |
| 322 | + @"1'000,00": @"the100000", | |
| 323 | + @"1 000 000.00": @"the100000000", | |
| 324 | + @"\U0001d47b\U0001d489\U0001d486 \U0001d492\U0001d496\U0001d48a\U0001d484\U0001d48c \U0001d483\U0001d493\U0001d490\U0001d498\U0001d48f \U0001d487\U0001d490\U0001d499 \U0001d48b\U0001d496\U0001d48e\U0001d491\U0001d494 \U0001d490\U0001d497\U0001d486\U0001d493 \U0001d495\U0001d489\U0001d486 \U0001d48d\U0001d482\U0001d49b\U0001d49a \U0001d485\U0001d490\U0001d488": @"the11", | |
| 325 | + @"1/2": @"the12", | |
| 326 | + @"123456789012345678901234567890123456789": @"the123456789012345678901234567890123456789", | |
| 327 | + @"\U0001d4e3\U0001d4f1\U0001d4ee \U0001d4fa\U0001d4fe\U0001d4f2\U0001d4ec\U0001d4f4 \U0001d4eb\U0001d4fb\U0001d4f8\U0001d500\U0001d4f7 \U0001d4ef\U0001d4f8\U0001d501 \U0001d4f3\U0001d4fe\U0001d4f6\U0001d4f9\U0001d4fc \U0001d4f8\U0001d4ff\U0001d4ee\U0001d4fb \U0001d4fd\U0001d4f1\U0001d4ee \U0001d4f5\U0001d4ea\U0001d503\U0001d502 \U0001d4ed\U0001d4f8\U0001d4f0": @"the13", | |
| 328 | + @"\U0001d57f\U0001d58d\U0001d58a \U0001d596\U0001d59a\U0001d58e\U0001d588\U0001d590 \U0001d587\U0001d597\U0001d594\U0001d59c\U0001d593 \U0001d58b\U0001d594\U0001d59d \U0001d58f\U0001d59a\U0001d592\U0001d595\U0001d598 \U0001d594\U0001d59b\U0001d58a\U0001d597 \U0001d599\U0001d58d\U0001d58a \U0001d591\U0001d586\U0001d59f\U0001d59e \U0001d589\U0001d594\U0001d58c": @"the14", | |
| 329 | + @"\U0001f1fa\U0001f1f8\U0001f1f7\U0001f1fa\U0001f1f8 \U0001f1e6\U0001f1eb\U0001f1e6\U0001f1f2\U0001f1f8": @"the15", | |
| 330 | + @"\U0001f1fa\U0001f1f8\U0001f1f7\U0001f1fa\U0001f1f8\U0001f1e6": @"the16", | |
| 331 | + @"\U0001f1fa\U0001f1f8\U0001f1f7\U0001f1fa\U0001f1f8\U0001f1e6\U0001f1eb\U0001f1e6\U0001f1f2": @"the17", | |
| 332 | + @"\U0001f469\U0001f3fd": @"the18", | |
| 333 | + @"\U0001f6be \U0001f192 \U0001f193 \U0001f195 \U0001f196 \U0001f197 \U0001f199 \U0001f3e7": @"the19", | |
| 334 | + @"1;DROP TABLE users": @"the1DROPTABLEUsers", | |
| 335 | + @"-1E02": @"the1E02", | |
| 336 | + @"1E2": @"the1E2", | |
| 337 | + @"1#QNAN": @"the1Qnan", | |
| 338 | + @"1#SNAN": @"the1Snan", | |
| 339 | + @"-,": @"the2", | |
| 340 | + @"﷽": @"the20", | |
| 341 | + @"\ufeff": @"the21", | |
| 342 | + @"゚・✿ヾ╲(。◕‿◕。)╱✿・゚": @"the22", | |
| 343 | + @"\ufffe": @"the23", | |
| 344 | + @"-.": @"the3", | |
| 345 | + @"<>?:\"{}|_+": @"the4", | |
| 346 | + @"\\": @"the5", | |
| 347 | + @"\302\200\302\201\302\202\302\203\302\204\302\206\302\207\302\210\302\211\302\212\302\213\302\214\302\215\302\216\302\217\302\220\302\221\302\222\302\223\302\224\302\225\302\226\302\227\302\230\302\231\302\232\302\233\302\234\302\235\302\236\302\237": @"the6", | |
| 348 | + @"\302\255\u0600\u0601\u0602\u0603\u0604\u0605\u061c\u06dd\u070f\u180e\u200b\u200c\u200d\u200e\u200f\u202a\u202b\u202c\u202d\u202e\u2060\u2061\u2062\u2063\u2064\u2066\u2067\u2068\u2069\u206a\u206b\u206c\u206d\u206e\u206f\ufeff\ufff9\ufffa\ufffb\U000110bd\U0001bca0\U0001bca1\U0001bca2\U0001bca3\U0001d173\U0001d174\U0001d175\U0001d176\U0001d177\U0001d178\U0001d179\U0001d17a\U000e0001\U000e0020\U000e0021\U000e0022\U000e0023\U000e0024\U000e0025\U000e0026\U000e0027\U000e0028\U000e0029\U000e002a\U000e002b\U000e002c\U000e002d\U000e002e\U000e002f\U000e0030\U000e0031\U000e0032\U000e0033\U000e0034\U000e0035\U000e0036\U000e0037\U000e0038\U000e0039\U000e003a\U000e003b\U000e003c\U000e003d\U000e003e\U000e003f\U000e0040\U000e0041\U000e0042\U000e0043\U000e0044\U000e0045\U000e0046\U000e0047\U000e0048\U000e0049\U000e004a\U000e004b\U000e004c\U000e004d\U000e004e\U000e004f\U000e0050\U000e0051\U000e0052\U000e0053\U000e0054\U000e0055\U000e0056\U000e0057\U000e0058\U000e0059\U000e005a\U000e005b\U000e005c\U000e005d\U000e005e\U000e005f\U000e0060\U000e0061\U000e0062\U000e0063\U000e0064\U000e0065\U000e0066\U000e0067\U000e0068\U000e0069\U000e006a\U000e006b\U000e006c\U000e006d\U000e006e\U000e006f\U000e0070\U000e0071\U000e0072\U000e0073\U000e0074\U000e0075\U000e0076\U000e0077\U000e0078\U000e0079\U000e007a\U000e007b\U000e007c\U000e007d\U000e007e\U000e007f": @"the7", | |
| 349 | + @"₀₁₂": @"the8", | |
| 350 | + @"⒯⒣⒠ ⒬⒰⒤⒞⒦ ⒝⒭⒪⒲⒩ ⒡⒪⒳ ⒥⒰⒨⒫⒮ ⒪⒱⒠⒭ ⒯⒣⒠ ⒧⒜⒵⒴ ⒟⒪⒢": @"the9", | |
| 351 | + @"999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999": @"the999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999", | |
| 352 | + @"false": @"theFalse", | |
| 353 | + @"# The next two lines may appear to be blank or mojibake in some viewers.": @"theNextTwoLinesMayAppearToBeBlankOrMojibakeInSomeViewers", | |
| 354 | + @"The quic\010\010\010\010\010\010k brown fo\007\007\007\007\007\007\007\007\007\007\007x... [Beeeep]": @"theQuicKBrownFoXBeeeep", | |
| 355 | + @"\u2066test\u2067": @"theTest", | |
| 356 | + @"٠١٢٣٤٥٦٧٨٩": @"the٠١٢٣٤٥٦٧٨٩", | |
| 357 | + @"#\tTwo-Byte Characters": @"twoByteCharacters", | |
| 358 | + @"# U+0000, U+000A, or U+000D (NUL, LF, CR).": @"u0000U000AOrU000DNULLFCR", | |
| 359 | + @"<u oncopy=alert()> Copy me</u>": @"uOncopyAlertCopyMeU", | |
| 360 | + @"undef": @"undef", | |
| 361 | + @"#\tUnicode font": @"unicodeFont", | |
| 362 | + @"#\tUnicode Numbers": @"unicodeNumbers", | |
| 363 | + @"#\tUnwanted Interpolation": @"unwantedInterpolation", | |
| 364 | + @"%x('ls -al /')": @"xLsAl", | |
| 365 | + @"Z̮̞̠͙͔ͅḀ̗̞͈̻̗Ḷ͙͎̯̹̞͓G̻O̭̗̮": @"zḀḶGO", | |
| 366 | + @"¡™£¢∞§¶•ªº–≠": @"ªº", | |
| 367 | + @"¸˛Ç◊ı˜Â¯˘¿": @"çIÂ", | |
| 368 | + @"Œ„´‰ˇÁ¨ˆØ∏”’": @"œÁØ", | |
| 369 | + @"œ∑´®†¥¨ˆøπ“‘": @"œØπ", | |
| 370 | + @"( ͡° ͜ʖ ͡°)": @"ʖ", | |
| 371 | + @"הָיְתָהtestالصفحات التّحول": @"הָיְתָהTestالصفحاتالتّحول", | |
| 372 | + @"ثم نفس سقطت وبالتحديد،, جزيرتي باستخدام أن دنو. إذ هنا؟ الستار وتنصيب كان. أهّل ايطاليا، بريطانيا-فرنسا قد أخذ. سليمان، إتفاقية بين ما, يذكر الحدود أي بعد, معاملة بولندا، الإطلاق عل إيو.": @"ثمنفسسقطتوبالتحديدجزيرتيباستخدامأندنوإذهناالستاروتنصيبكانأهّلايطاليابريطانيافرنساقدأخذسليمانإتفاقيةبينمايذكرالحدودأيبعدمعاملةبولنداالإطلاقعلإيو", | |
| 373 | + @"ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็": @"ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็", | |
| 374 | + @"Ⱥ": @"ⱥ", | |
| 375 | + @"Ⱦ": @"ⱦ", | |
| 376 | + @"パーティーへ行かないか": @"パーティーへ行かないか", | |
| 377 | + @"和製漢語": @"和製漢語", | |
| 378 | + @"田中さんにあげて下さい": @"田中さんにあげて下さい", | |
| 379 | + @"`⁄€‹›fifl‡°·‚—±": @"fifl", | |
| 380 | + @"`ィ(´∀`∩": @"ィ", | |
| 381 | + }; | |
| 382 | +} | |
| 383 | + | |
| 384 | ++ (instancetype)fromJSONDictionary:(NSDictionary *)dict | |
| 385 | +{ | |
| 386 | + return [dict isKindOfClass:NSDictionary.class] ? [[QTA alloc] initWithJSONDictionary:dict] : nil; | |
| 387 | +} | |
| 388 | + | |
| 389 | +- (instancetype)initWithJSONDictionary:(NSDictionary *)dict | |
| 390 | +{ | |
| 391 | + if (self = [super init]) { | |
| 392 | + if (![dict[@"!@#$%^&*()`~"] isKindOfClass:NSString.class]) return nil; | |
| 393 | + if (![dict[@"-0"] isKindOfClass:NSString.class]) return nil; | |
| 394 | + if (![dict[@"0,00"] isKindOfClass:NSString.class]) return nil; | |
| 395 | + if (![dict[@"0.0/0.0"] isKindOfClass:NSString.class]) return nil; | |
| 396 | + if (![dict[@"-1"] isKindOfClass:NSString.class]) return nil; | |
| 397 | + if (![dict[@"1'000'000.00"] isKindOfClass:NSString.class]) return nil; | |
| 398 | + if (![dict[@"1E02"] isKindOfClass:NSString.class]) return nil; | |
| 399 | + if (![dict[@"';alert(123);t='"] isKindOfClass:NSString.class]) return nil; | |
| 400 | + if (![dict[@"False"] isKindOfClass:NSString.class]) return nil; | |
| 401 | + if (![dict[@"<a href=javascript:javascript:alert(1)>XXX</a>"] isKindOfClass:NSString.class]) return nil; | |
| 402 | + if (![dict[@"<a href=\"javascript\\x09:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 403 | + if (![dict[@"<a href=\"javascript\\x0A:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 404 | + if (![dict[@"<a href=\"javascript\\x3A:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 405 | + if (![dict[@"<a href=\"\\x01javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 406 | + if (![dict[@"<a href=\"\\x05javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 407 | + if (![dict[@"<a href=\"\\x08javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 408 | + if (![dict[@"<a href=\"\\x09javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 409 | + if (![dict[@"<a href=\"\\x0Cjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 410 | + if (![dict[@"<a href=\"\\x10javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 411 | + if (![dict[@"<a href=\"\\x11javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 412 | + if (![dict[@"<a href=\"\\x13javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 413 | + if (![dict[@"<a href=\"\\x17javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 414 | + if (![dict[@"<a href=\"\\x1Fjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 415 | + if (![dict[@"<a href=\"\\xC2\\xA0javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 416 | + if (![dict[@"<a href=\"\\xE1\\x9A\\x80javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 417 | + if (![dict[@"<a href=\"\\xE1\\xA0\\x8Ejavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 418 | + if (![dict[@"<a href=\"\\xE2\\x80\\x83javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 419 | + if (![dict[@"<a href=\"\\xE2\\x80\\x84javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 420 | + if (![dict[@"<a href=\"\\xE2\\x80\\x86javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 421 | + if (![dict[@"<a href=\"\\xE2\\x80\\x87javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 422 | + if (![dict[@"<a href=\"\\xE2\\x80\\xA8javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 423 | + if (![dict[@"nil"] isKindOfClass:NSString.class]) return nil; | |
| 424 | + if (![dict[@"TRUE"] isKindOfClass:NSString.class]) return nil; | |
| 425 | + if (![dict[@"\u202btest\u202b"] isKindOfClass:NSString.class]) return nil; | |
| 426 | + if (![dict[@"True"] isKindOfClass:NSString.class]) return nil; | |
| 427 | + if (![dict[@"ABC<div style=\"x:exp\\x00ression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 428 | + if (![dict[@"ABC<div style=\"x:exp\\x5Cression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 429 | + if (![dict[@"ABC<div style=\"x:\\x09expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 430 | + if (![dict[@"ABC<div style=\"x:\\x0Bexpression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 431 | + if (![dict[@"ABC<div style=\"x:\\x20expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 432 | + if (![dict[@"ABC<div style=\"x\\x3Aexpression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 433 | + if (![dict[@"ABC<div style=\"x:\\xC2\\xA0expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 434 | + if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x80expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 435 | + if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x84expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 436 | + if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x89expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 437 | + if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x8Bexpression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 438 | + if (![dict[@";alert(123);"] isKindOfClass:NSString.class]) return nil; | |
| 439 | + if (![dict[@"\";alert(123);t=\""] isKindOfClass:NSString.class]) return nil; | |
| 440 | + if (![dict[@"\\\";alert('XSS');//"] isKindOfClass:NSString.class]) return nil; | |
| 441 | + if (![dict[@"# and U+200B (ZERO WIDTH SPACE), which are in the C categories but are often"] isKindOfClass:NSString.class]) return nil; | |
| 442 | + if (![dict[@","] isKindOfClass:NSString.class]) return nil; | |
| 443 | + if (![dict[@"Arsenal canal"] isKindOfClass:NSString.class]) return nil; | |
| 444 | + if (![dict[@"\" autofocus onkeyup=\"javascript:alert(123)"] isKindOfClass:NSString.class]) return nil; | |
| 445 | + if (![dict[@"AUX"] isKindOfClass:NSString.class]) return nil; | |
| 446 | + if (![dict[@"#\tChanging length when lowercased"] isKindOfClass:NSString.class]) return nil; | |
| 447 | + if (![dict[@"#\tCharacters which increase in length (2 to 3 bytes) when lowercased"] isKindOfClass:NSString.class]) return nil; | |
| 448 | + if (![dict[@"classic"] isKindOfClass:NSString.class]) return nil; | |
| 449 | + if (![dict[@"#\tCommand Injection (Ruby)"] isKindOfClass:NSString.class]) return nil; | |
| 450 | + if (![dict[@"%d"] isKindOfClass:NSString.class]) return nil; | |
| 451 | + if (![dict[@"Dick Van Dyke"] isKindOfClass:NSString.class]) return nil; | |
| 452 | + if (![dict[@"Dr. Herman I. Libshitz"] isKindOfClass:NSString.class]) return nil; | |
| 453 | + if (![dict[@" "] isKindOfClass:NSString.class]) return nil; | |
| 454 | + if (![dict[@"$ENV{'HOME'}"] isKindOfClass:NSString.class]) return nil; | |
| 455 | + if (![dict[@"../../../../../../../../../../../etc/hosts"] isKindOfClass:NSString.class]) return nil; | |
| 456 | + if (![dict[@"../../../../../../../../../../../etc/passwd%00"] isKindOfClass:NSString.class]) return nil; | |
| 457 | + if (![dict[@"# fonts, and have a number of special behaviors"] isKindOfClass:NSString.class]) return nil; | |
| 458 | + if (![dict[@"<foo val=`bar' />"] isKindOfClass:NSString.class]) return nil; | |
| 459 | + if (![dict[@"$HOME"] isKindOfClass:NSString.class]) return nil; | |
| 460 | + if (![dict[@"#\tHuman injection"] isKindOfClass:NSString.class]) return nil; | |
| 461 | + if (![dict[@"̡͓̞ͅI̗̘̦͝n͇͇͙v̮̫ok̲̫̙͈i̖͙̭̹̠̞n̡̻̮̣̺g̲͈͙̭͙̬͎ ̰t͔̦h̞̲e̢̤ ͍̬̲͖f̴̘͕̣è͖ẹ̥̩l͖͔͚i͓͚̦͠n͖͍̗͓̳̮g͍ ̨o͚̪͡f̘̣̬ ̖̘͖̟͙̮c҉͔̫͖͓͇͖ͅh̵̤̣͚͔á̗̼͕ͅo̼̣̥s̱͈̺̖̦̻͢.̛̖̞̠̫̰"] isKindOfClass:NSString.class]) return nil; | |
| 462 | + if (![dict[@"<!--[if<img src=x onerror=javascript:alert(1)//]> -->"] isKindOfClass:NSString.class]) return nil; | |
| 463 | + if (![dict[@"<!--[if]><script>javascript:alert(1)</script -->"] isKindOfClass:NSString.class]) return nil; | |
| 464 | + if (![dict[@"<IMG SRC=\"jav ascript:alert('XSS');\">"] isKindOfClass:NSString.class]) return nil; | |
| 465 | + if (![dict[@"<IMG SRC=\"jav
ascript:alert('XSS');\">"] isKindOfClass:NSString.class]) return nil; | |
| 466 | + if (![dict[@"<IMG SRC=\"jav
ascript:alert('XSS');\">"] isKindOfClass:NSString.class]) return nil; | |
| 467 | + if (![dict[@"<IMG SRC=javascript:alert('XSS')>"] isKindOfClass:NSString.class]) return nil; | |
| 468 | + if (![dict[@"<img src\\x09=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 469 | + if (![dict[@"<img src\\x11=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 470 | + if (![dict[@"<img src=x onerror=\\x00\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 471 | + if (![dict[@"<img src=x onerror=\\x09\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 472 | + if (![dict[@"<img src=x\\x09onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 473 | + if (![dict[@"<img src=x\\x10onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 474 | + if (![dict[@"<img src=x\\x11onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 475 | + if (![dict[@"<img src=x\\x12onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 476 | + if (![dict[@"<img src=x\\x13onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 477 | + if (![dict[@"`\"'><img src=xxx:x \\x00onerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil; | |
| 478 | + if (![dict[@"`\"'><img src=xxx:x \\x0Bonerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil; | |
| 479 | + if (![dict[@"`\"'><img src=xxx:x \\x2Fonerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil; | |
| 480 | + if (![dict[@"<img \\x00src=x onerror=\"alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 481 | + if (![dict[@"<img\\x10src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 482 | + if (![dict[@"<img\\x13src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 483 | + if (![dict[@"<img\\x32src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 484 | + if (![dict[@"<img \\x39src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 485 | + if (![dict[@"INF"] isKindOfClass:NSString.class]) return nil; | |
| 486 | + if (![dict[@"-Infinity"] isKindOfClass:NSString.class]) return nil; | |
| 487 | + if (![dict[@"#\tInnocuous strings which may be blocked by profanity filters (https://en.wikipedia.org/wiki/Scunthorpe_problem)"] isKindOfClass:NSString.class]) return nil; | |
| 488 | + if (![dict[@"dontMakeAMap"] isKindOfClass:NSNumber.class]) return nil; | |
| 489 | + if (![dict[@"Jimmy Clitheroe"] isKindOfClass:NSString.class]) return nil; | |
| 490 | + if (![dict[@"Kernel.exit(1)"] isKindOfClass:NSString.class]) return nil; | |
| 491 | + if (![dict[@"#\tKnown CVEs and Vulnerabilities"] isKindOfClass:NSString.class]) return nil; | |
| 492 | + if (![dict[@"Lightwater Country Park"] isKindOfClass:NSString.class]) return nil; | |
| 493 | + if (![dict[@"LPT2"] isKindOfClass:NSString.class]) return nil; | |
| 494 | + if (![dict[@"LPT3"] isKindOfClass:NSString.class]) return nil; | |
| 495 | + if (![dict[@"`ls -al /`"] isKindOfClass:NSString.class]) return nil; | |
| 496 | + if (![dict[@"#\tMSDOS/Windows Special Filenames"] isKindOfClass:NSString.class]) return nil; | |
| 497 | + if (![dict[@"# Non-whitespace C1 controls: U+0080 through U+0084 and U+0086 through U+009F."] isKindOfClass:NSString.class]) return nil; | |
| 498 | + if (![dict[@"None"] isKindOfClass:NSString.class]) return nil; | |
| 499 | + if (![dict[@"(null)"] isKindOfClass:NSString.class]) return nil; | |
| 500 | + if (![dict[@"'\"'"] isKindOfClass:NSString.class]) return nil; | |
| 501 | + if (![dict[@"0"] isKindOfClass:NSString.class]) return nil; | |
| 502 | + if (![dict[@"1"] isKindOfClass:NSString.class]) return nil; | |
| 503 | + if (![dict[@" onfocus=JaVaSCript:alert(123) autofocus"] isKindOfClass:NSString.class]) return nil; | |
| 504 | + if (![dict[@"' OR '1'='1"] isKindOfClass:NSString.class]) return nil; | |
| 505 | + if (![dict[@"Penistone Community Church"] isKindOfClass:NSString.class]) return nil; | |
| 506 | + if (![dict[@"perl -e 'print \"<IMG SRC=java\\0script:alert(\\\"XSS\\\")>\";' > out"] isKindOfClass:NSString.class]) return nil; | |
| 507 | + if (![dict[@"PRN"] isKindOfClass:NSString.class]) return nil; | |
| 508 | + if (![dict[@"RomansInSussex.co.uk"] isKindOfClass:NSString.class]) return nil; | |
| 509 | + if (![dict[@"%s"] isKindOfClass:NSString.class]) return nil; | |
| 510 | + if (![dict[@"<<< %s(un='%s') = %u"] isKindOfClass:NSString.class]) return nil; | |
| 511 | + if (![dict[@"<sc<script>ript>alert(123)</sc</script>ript>"] isKindOfClass:NSString.class]) return nil; | |
| 512 | + if (![dict[@"\"><script>alert(123);</script x=\""] isKindOfClass:NSString.class]) return nil; | |
| 513 | + if (![dict[@"#\tScript Injection"] isKindOfClass:NSString.class]) return nil; | |
| 514 | + if (![dict[@"<SCRIPT SRC=http://ha.ckers.org/xss.js?< B >"] isKindOfClass:NSString.class]) return nil; | |
| 515 | + if (![dict[@"<SCRIPT/SRC=\"http://ha.ckers.org/xss.js\"></SCRIPT>"] isKindOfClass:NSString.class]) return nil; | |
| 516 | + if (![dict[@"</script><script>alert(123)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 517 | + if (![dict[@"\"`'><script>\\x00javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 518 | + if (![dict[@"<script\\x09type=\"text/javascript\">javascript:alert(1);</script>"] isKindOfClass:NSString.class]) return nil; | |
| 519 | + if (![dict[@"\"`'><script>\\x0Cjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 520 | + if (![dict[@"\"`'><script>\\x0Djavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 521 | + if (![dict[@"<script\\x20type=\"text/javascript\">javascript:alert(1);</script>"] isKindOfClass:NSString.class]) return nil; | |
| 522 | + if (![dict[@"<script\\x3Etype=\"text/javascript\">javascript:alert(1);</script>"] isKindOfClass:NSString.class]) return nil; | |
| 523 | + if (![dict[@"\"`'><script>\\xC2\\x85javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 524 | + if (![dict[@"\"`'><script>\\xC2\\xA0javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 525 | + if (![dict[@"\"`'><script>\\xE1\\x9A\\x80javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 526 | + if (![dict[@"\"`'><script>\\xE1\\xA0\\x8Ejavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 527 | + if (![dict[@"\"`'><script>\\xE2\\x80\\x81javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 528 | + if (![dict[@"\"`'><script>\\xE2\\x80\\x86javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 529 | + if (![dict[@"\"`'><script>\\xE2\\x80\\x89javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 530 | + if (![dict[@"\"`'><script>\\xE2\\x81\\x9Fjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 531 | + if (![dict[@"\"`'><script>\\xEF\\xBB\\xBFjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 532 | + if (![dict[@"\"`'><script>\\xF0\\x90\\x96\\x9Ajavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 533 | + if (![dict[@"<SCRIPT/XSS SRC=\"http://ha.ckers.org/xss.js\"></SCRIPT>"] isKindOfClass:NSString.class]) return nil; | |
| 534 | + if (![dict[@"(╯°□°)╯︵ ┻━┻)"] isKindOfClass:NSString.class]) return nil; | |
| 535 | + if (![dict[@"{0}"] isKindOfClass:NSString.class]) return nil; | |
| 536 | + if (![dict[@"#\tSQL Injection"] isKindOfClass:NSString.class]) return nil; | |
| 537 | + if (![dict[@"#\tString which can reveal system files when parsed by a badly configured XML parser"] isKindOfClass:NSString.class]) return nil; | |
| 538 | + if (![dict[@"#\tStrings that test for known vulnerabilities"] isKindOfClass:NSString.class]) return nil; | |
| 539 | + if (![dict[@"#\tStrings which can be accidentally expanded into different strings if evaluated in the wrong context, e.g. used as a printf format string or via Perl or shell eval. Might expose sensitive data from the program doing the interpolation, or might just represent the wrong string."] isKindOfClass:NSString.class]) return nil; | |
| 540 | + if (![dict[@"#\tStrings which can call system commands within Ruby/Rails applications"] isKindOfClass:NSString.class]) return nil; | |
| 541 | + if (![dict[@"#\tStrings which consists of Japanese-style emoticons which are popular on the web"] isKindOfClass:NSString.class]) return nil; | |
| 542 | + if (![dict[@"#\tStrings which contain bold/italic/etc. versions of normal characters"] isKindOfClass:NSString.class]) return nil; | |
| 543 | + if (![dict[@"#\tStrings which contain common unicode symbols (e.g. smart quotes)"] isKindOfClass:NSString.class]) return nil; | |
| 544 | + if (![dict[@"#\tStrings which contain Emoji; should be the same behavior as two-byte characters, but not always"] isKindOfClass:NSString.class]) return nil; | |
| 545 | + if (![dict[@"#\tStrings which contain misplaced quotation marks; can cause encoding errors"] isKindOfClass:NSString.class]) return nil; | |
| 546 | + if (![dict[@"#\tStrings which contain unicode subscripts/superscripts; can cause rendering issues"] isKindOfClass:NSString.class]) return nil; | |
| 547 | + if (![dict[@"#\tStrings which crashed iMessage in various versions of iOS"] isKindOfClass:NSString.class]) return nil; | |
| 548 | + if (![dict[@"#\tStrings which may cause human to reinterpret worldview"] isKindOfClass:NSString.class]) return nil; | |
| 549 | + if (![dict[@"Super Bowl XXX"] isKindOfClass:NSString.class]) return nil; | |
| 550 | + if (![dict[@"\u202a\u202atest\u202a"] isKindOfClass:NSString.class]) return nil; | |
| 551 | + if (![dict[@"</textarea><script>alert(123)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 552 | + if (![dict[@"'"] isKindOfClass:NSString.class]) return nil; | |
| 553 | + if (![dict[@"+0"] isKindOfClass:NSString.class]) return nil; | |
| 554 | + if (![dict[@"0..0"] isKindOfClass:NSString.class]) return nil; | |
| 555 | + if (![dict[@"0,0,0"] isKindOfClass:NSString.class]) return nil; | |
| 556 | + if (![dict[@"0,0/0,0"] isKindOfClass:NSString.class]) return nil; | |
| 557 | + if (![dict[@"00˙Ɩ$-"] isKindOfClass:NSString.class]) return nil; | |
| 558 | + if (![dict[@"0x0"] isKindOfClass:NSString.class]) return nil; | |
| 559 | + if (![dict[@",./;'[]\\-="] isKindOfClass:NSString.class]) return nil; | |
| 560 | + if (![dict[@"1/0"] isKindOfClass:NSString.class]) return nil; | |
| 561 | + if (![dict[@"1.00"] isKindOfClass:NSString.class]) return nil; | |
| 562 | + if (![dict[@"1.0/0.0"] isKindOfClass:NSString.class]) return nil; | |
| 563 | + if (![dict[@"1'000,00"] isKindOfClass:NSString.class]) return nil; | |
| 564 | + if (![dict[@"1 000 000.00"] isKindOfClass:NSString.class]) return nil; | |
| 565 | + if (![dict[@"\U0001d47b\U0001d489\U0001d486 \U0001d492\U0001d496\U0001d48a\U0001d484\U0001d48c \U0001d483\U0001d493\U0001d490\U0001d498\U0001d48f \U0001d487\U0001d490\U0001d499 \U0001d48b\U0001d496\U0001d48e\U0001d491\U0001d494 \U0001d490\U0001d497\U0001d486\U0001d493 \U0001d495\U0001d489\U0001d486 \U0001d48d\U0001d482\U0001d49b\U0001d49a \U0001d485\U0001d490\U0001d488"] isKindOfClass:NSString.class]) return nil; | |
| 566 | + if (![dict[@"1/2"] isKindOfClass:NSString.class]) return nil; | |
| 567 | + if (![dict[@"123456789012345678901234567890123456789"] isKindOfClass:NSString.class]) return nil; | |
| 568 | + if (![dict[@"\U0001d4e3\U0001d4f1\U0001d4ee \U0001d4fa\U0001d4fe\U0001d4f2\U0001d4ec\U0001d4f4 \U0001d4eb\U0001d4fb\U0001d4f8\U0001d500\U0001d4f7 \U0001d4ef\U0001d4f8\U0001d501 \U0001d4f3\U0001d4fe\U0001d4f6\U0001d4f9\U0001d4fc \U0001d4f8\U0001d4ff\U0001d4ee\U0001d4fb \U0001d4fd\U0001d4f1\U0001d4ee \U0001d4f5\U0001d4ea\U0001d503\U0001d502 \U0001d4ed\U0001d4f8\U0001d4f0"] isKindOfClass:NSString.class]) return nil; | |
| 569 | + if (![dict[@"\U0001d57f\U0001d58d\U0001d58a \U0001d596\U0001d59a\U0001d58e\U0001d588\U0001d590 \U0001d587\U0001d597\U0001d594\U0001d59c\U0001d593 \U0001d58b\U0001d594\U0001d59d \U0001d58f\U0001d59a\U0001d592\U0001d595\U0001d598 \U0001d594\U0001d59b\U0001d58a\U0001d597 \U0001d599\U0001d58d\U0001d58a \U0001d591\U0001d586\U0001d59f\U0001d59e \U0001d589\U0001d594\U0001d58c"] isKindOfClass:NSString.class]) return nil; | |
| 570 | + if (![dict[@"\U0001f1fa\U0001f1f8\U0001f1f7\U0001f1fa\U0001f1f8 \U0001f1e6\U0001f1eb\U0001f1e6\U0001f1f2\U0001f1f8"] isKindOfClass:NSString.class]) return nil; | |
| 571 | + if (![dict[@"\U0001f1fa\U0001f1f8\U0001f1f7\U0001f1fa\U0001f1f8\U0001f1e6"] isKindOfClass:NSString.class]) return nil; | |
| 572 | + if (![dict[@"\U0001f1fa\U0001f1f8\U0001f1f7\U0001f1fa\U0001f1f8\U0001f1e6\U0001f1eb\U0001f1e6\U0001f1f2"] isKindOfClass:NSString.class]) return nil; | |
| 573 | + if (![dict[@"\U0001f469\U0001f3fd"] isKindOfClass:NSString.class]) return nil; | |
| 574 | + if (![dict[@"\U0001f6be \U0001f192 \U0001f193 \U0001f195 \U0001f196 \U0001f197 \U0001f199 \U0001f3e7"] isKindOfClass:NSString.class]) return nil; | |
| 575 | + if (![dict[@"1;DROP TABLE users"] isKindOfClass:NSString.class]) return nil; | |
| 576 | + if (![dict[@"-1E02"] isKindOfClass:NSString.class]) return nil; | |
| 577 | + if (![dict[@"1E2"] isKindOfClass:NSString.class]) return nil; | |
| 578 | + if (![dict[@"1#QNAN"] isKindOfClass:NSString.class]) return nil; | |
| 579 | + if (![dict[@"1#SNAN"] isKindOfClass:NSString.class]) return nil; | |
| 580 | + if (![dict[@"-,"] isKindOfClass:NSString.class]) return nil; | |
| 581 | + if (![dict[@"﷽"] isKindOfClass:NSString.class]) return nil; | |
| 582 | + if (![dict[@"\ufeff"] isKindOfClass:NSString.class]) return nil; | |
| 583 | + if (![dict[@"゚・✿ヾ╲(。◕‿◕。)╱✿・゚"] isKindOfClass:NSString.class]) return nil; | |
| 584 | + if (![dict[@"\ufffe"] isKindOfClass:NSString.class]) return nil; | |
| 585 | + if (![dict[@"-."] isKindOfClass:NSString.class]) return nil; | |
| 586 | + if (![dict[@"<>?:\"{}|_+"] isKindOfClass:NSString.class]) return nil; | |
| 587 | + if (![dict[@"\\"] isKindOfClass:NSString.class]) return nil; | |
| 588 | + if (![dict[@"\302\200\302\201\302\202\302\203\302\204\302\206\302\207\302\210\302\211\302\212\302\213\302\214\302\215\302\216\302\217\302\220\302\221\302\222\302\223\302\224\302\225\302\226\302\227\302\230\302\231\302\232\302\233\302\234\302\235\302\236\302\237"] isKindOfClass:NSString.class]) return nil; | |
| 589 | + if (![dict[@"\302\255\u0600\u0601\u0602\u0603\u0604\u0605\u061c\u06dd\u070f\u180e\u200b\u200c\u200d\u200e\u200f\u202a\u202b\u202c\u202d\u202e\u2060\u2061\u2062\u2063\u2064\u2066\u2067\u2068\u2069\u206a\u206b\u206c\u206d\u206e\u206f\ufeff\ufff9\ufffa\ufffb\U000110bd\U0001bca0\U0001bca1\U0001bca2\U0001bca3\U0001d173\U0001d174\U0001d175\U0001d176\U0001d177\U0001d178\U0001d179\U0001d17a\U000e0001\U000e0020\U000e0021\U000e0022\U000e0023\U000e0024\U000e0025\U000e0026\U000e0027\U000e0028\U000e0029\U000e002a\U000e002b\U000e002c\U000e002d\U000e002e\U000e002f\U000e0030\U000e0031\U000e0032\U000e0033\U000e0034\U000e0035\U000e0036\U000e0037\U000e0038\U000e0039\U000e003a\U000e003b\U000e003c\U000e003d\U000e003e\U000e003f\U000e0040\U000e0041\U000e0042\U000e0043\U000e0044\U000e0045\U000e0046\U000e0047\U000e0048\U000e0049\U000e004a\U000e004b\U000e004c\U000e004d\U000e004e\U000e004f\U000e0050\U000e0051\U000e0052\U000e0053\U000e0054\U000e0055\U000e0056\U000e0057\U000e0058\U000e0059\U000e005a\U000e005b\U000e005c\U000e005d\U000e005e\U000e005f\U000e0060\U000e0061\U000e0062\U000e0063\U000e0064\U000e0065\U000e0066\U000e0067\U000e0068\U000e0069\U000e006a\U000e006b\U000e006c\U000e006d\U000e006e\U000e006f\U000e0070\U000e0071\U000e0072\U000e0073\U000e0074\U000e0075\U000e0076\U000e0077\U000e0078\U000e0079\U000e007a\U000e007b\U000e007c\U000e007d\U000e007e\U000e007f"] isKindOfClass:NSString.class]) return nil; | |
| 590 | + if (![dict[@"₀₁₂"] isKindOfClass:NSString.class]) return nil; | |
| 591 | + if (![dict[@"⒯⒣⒠ ⒬⒰⒤⒞⒦ ⒝⒭⒪⒲⒩ ⒡⒪⒳ ⒥⒰⒨⒫⒮ ⒪⒱⒠⒭ ⒯⒣⒠ ⒧⒜⒵⒴ ⒟⒪⒢"] isKindOfClass:NSString.class]) return nil; | |
| 592 | + if (![dict[@"999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999"] isKindOfClass:NSString.class]) return nil; | |
| 593 | + if (![dict[@"false"] isKindOfClass:NSString.class]) return nil; | |
| 594 | + if (![dict[@"# The next two lines may appear to be blank or mojibake in some viewers."] isKindOfClass:NSString.class]) return nil; | |
| 595 | + if (![dict[@"The quic\010\010\010\010\010\010k brown fo\007\007\007\007\007\007\007\007\007\007\007x... [Beeeep]"] isKindOfClass:NSString.class]) return nil; | |
| 596 | + if (![dict[@"\u2066test\u2067"] isKindOfClass:NSString.class]) return nil; | |
| 597 | + if (![dict[@"٠١٢٣٤٥٦٧٨٩"] isKindOfClass:NSString.class]) return nil; | |
| 598 | + if (![dict[@"#\tTwo-Byte Characters"] isKindOfClass:NSString.class]) return nil; | |
| 599 | + if (![dict[@"# U+0000, U+000A, or U+000D (NUL, LF, CR)."] isKindOfClass:NSString.class]) return nil; | |
| 600 | + if (![dict[@"<u oncopy=alert()> Copy me</u>"] isKindOfClass:NSString.class]) return nil; | |
| 601 | + if (![dict[@"undef"] isKindOfClass:NSString.class]) return nil; | |
| 602 | + if (![dict[@"#\tUnicode font"] isKindOfClass:NSString.class]) return nil; | |
| 603 | + if (![dict[@"#\tUnicode Numbers"] isKindOfClass:NSString.class]) return nil; | |
| 604 | + if (![dict[@"#\tUnwanted Interpolation"] isKindOfClass:NSString.class]) return nil; | |
| 605 | + if (![dict[@"%x('ls -al /')"] isKindOfClass:NSString.class]) return nil; | |
| 606 | + if (![dict[@"Z̮̞̠͙͔ͅḀ̗̞͈̻̗Ḷ͙͎̯̹̞͓G̻O̭̗̮"] isKindOfClass:NSString.class]) return nil; | |
| 607 | + if (![dict[@"¡™£¢∞§¶•ªº–≠"] isKindOfClass:NSString.class]) return nil; | |
| 608 | + if (![dict[@"¸˛Ç◊ı˜Â¯˘¿"] isKindOfClass:NSString.class]) return nil; | |
| 609 | + if (![dict[@"Œ„´‰ˇÁ¨ˆØ∏”’"] isKindOfClass:NSString.class]) return nil; | |
| 610 | + if (![dict[@"œ∑´®†¥¨ˆøπ“‘"] isKindOfClass:NSString.class]) return nil; | |
| 611 | + if (![dict[@"( ͡° ͜ʖ ͡°)"] isKindOfClass:NSString.class]) return nil; | |
| 612 | + if (![dict[@"הָיְתָהtestالصفحات التّحول"] isKindOfClass:NSString.class]) return nil; | |
| 613 | + if (![dict[@"ثم نفس سقطت وبالتحديد،, جزيرتي باستخدام أن دنو. إذ هنا؟ الستار وتنصيب كان. أهّل ايطاليا، بريطانيا-فرنسا قد أخذ. سليمان، إتفاقية بين ما, يذكر الحدود أي بعد, معاملة بولندا، الإطلاق عل إيو."] isKindOfClass:NSString.class]) return nil; | |
| 614 | + if (![dict[@"ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็"] isKindOfClass:NSString.class]) return nil; | |
| 615 | + if (![dict[@"Ⱥ"] isKindOfClass:NSString.class]) return nil; | |
| 616 | + if (![dict[@"Ⱦ"] isKindOfClass:NSString.class]) return nil; | |
| 617 | + if (![dict[@"パーティーへ行かないか"] isKindOfClass:NSString.class]) return nil; | |
| 618 | + if (![dict[@"和製漢語"] isKindOfClass:NSString.class]) return nil; | |
| 619 | + if (![dict[@"田中さんにあげて下さい"] isKindOfClass:NSString.class]) return nil; | |
| 620 | + if (![dict[@"`⁄€‹›fifl‡°·‚—±"] isKindOfClass:NSString.class]) return nil; | |
| 621 | + if (![dict[@"`ィ(´∀`∩"] isKindOfClass:NSString.class]) return nil; | |
| 622 | + [self setValuesForKeysWithDictionary:dict]; | |
| 623 | + } | |
| 624 | + return self; | |
| 625 | +} | |
| 626 | + | |
| 627 | +- (void)setValue:(nullable id)value forKey:(NSString *)key | |
| 628 | +{ | |
| 629 | + id resolved = QTA.properties[key]; | |
| 630 | + if (resolved) [super setValue:value forKey:resolved]; | |
| 631 | +} | |
| 632 | + | |
| 633 | +- (void)setNilValueForKey:(NSString *)key | |
| 634 | +{ | |
| 635 | + id resolved = QTA.properties[key]; | |
| 636 | + if (resolved) [super setValue:@(0) forKey:resolved]; | |
| 637 | +} | |
| 638 | + | |
| 639 | +- (NSDictionary *)JSONDictionary | |
| 640 | +{ | |
| 641 | + id dict = [[self dictionaryWithValuesForKeys:QTA.properties.allValues] mutableCopy]; | |
| 642 | + | |
| 643 | + for (id jsonName in QTA.properties) { | |
| 644 | + id propertyName = QTA.properties[jsonName]; | |
| 645 | + if (![jsonName isEqualToString:propertyName]) { | |
| 646 | + dict[jsonName] = dict[propertyName]; | |
| 647 | + [dict removeObjectForKey:propertyName]; | |
| 648 | + } | |
| 649 | + } | |
| 650 | + | |
| 651 | + [dict addEntriesFromDictionary:@{ | |
| 652 | + @"dontMakeAMap": _isDontMakeAMap ? @YES : @NO, | |
| 653 | + }]; | |
| 654 | + | |
| 655 | + return dict; | |
| 656 | +} | |
| 657 | +@end | |
| 658 | + | |
| 659 | +@implementation QTB | |
| 660 | ++ (NSDictionary<NSString *, NSString *> *)properties | |
| 661 | +{ | |
| 662 | + static NSDictionary<NSString *, NSString *> *properties; | |
| 663 | + return properties = properties ? properties : @{ | |
| 664 | + @"<a href=http://foo.bar/#x=`y></a><img alt=\"`><img src=x:x onerror=javascript:alert(1)></a>\">": @"aHrefHTTPFooBarXYAImgAltImgSrcXXOnerrorJavascriptAlert1A", | |
| 665 | + @"<a href=\"javascript\\x00:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefJavascriptX00JavascriptAlert1IDFuzzelement1TestA", | |
| 666 | + @"<a href=\"javascript\\x0D:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefJavascriptX0DJavascriptAlert1IDFuzzelement1TestA", | |
| 667 | + @"<a href=\"\\x02javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX02JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 668 | + @"<a href=\"\\x04javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX04JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 669 | + @"<a href=\"\\x0Ajavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX0AjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 670 | + @"<a href=\"\\x0Djavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX0DjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 671 | + @"<a href=\"\\x0Ejavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX0EjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 672 | + @"<a href=\"\\x0Fjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX0FjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 673 | + @"<a href=\"\\x16javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX16JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 674 | + @"<a href=\"\\x19javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX19JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 675 | + @"<a href=\"\\x1Ajavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX1AjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 676 | + @"<a href=\"\\x1Djavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX1DjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 677 | + @"<a href=\"\\x1Ejavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX1EjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 678 | + @"<a href=\"\\xE2\\x80\\x81javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X81JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 679 | + @"<a href=\"\\xE2\\x80\\x82javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X82JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 680 | + @"<a href=\"\\xE2\\x80\\xA9javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80XA9JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 681 | + @"<a href=\"\\xE2\\x80\\xAFjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80XAFjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 682 | + @"ABC<div style=\"x:expression\\x5C(javascript:alert(1)\">DEF": @"abcDivStyleXExpressionX5CJavascriptAlert1DEF", | |
| 683 | + @"ABC<div style=\"x:\\x0Aexpression(javascript:alert(1)\">DEF": @"abcDivStyleXX0AexpressionJavascriptAlert1DEF", | |
| 684 | + @"ABC<div style=\"x:\\x0Dexpression(javascript:alert(1)\">DEF": @"abcDivStyleXX0DexpressionJavascriptAlert1DEF", | |
| 685 | + @"ABC<div style=\"x:\\xE2\\x80\\x82expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X82ExpressionJavascriptAlert1DEF", | |
| 686 | + @"ABC<div style=\"x:\\xE2\\x80\\x83expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X83ExpressionJavascriptAlert1DEF", | |
| 687 | + @"ABC<div style=\"x:\\xE2\\x80\\x85expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X85ExpressionJavascriptAlert1DEF", | |
| 688 | + @"ABC<div style=\"x:\\xE2\\x80\\x87expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X87ExpressionJavascriptAlert1DEF", | |
| 689 | + @"ABC<div style=\"x:\\xE2\\x80\\x8Aexpression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X8AexpressionJavascriptAlert1DEF", | |
| 690 | + @"⁰⁴⁵₀₁₂": @"another", | |
| 691 | + @"# appear in input.": @"appearInInput", | |
| 692 | + @"+++ATH0": @"ath0", | |
| 693 | + @"' autofocus onkeyup='javascript:alert(123)": @"autofocusOnkeyupJavascriptAlert123", | |
| 694 | + @"\t\013\014 \302\205 \u200b\u2028\u2029 ": @"b", | |
| 695 | + @"1'000.00": @"b100000", | |
| 696 | + @"FALSE": @"bFALSE", | |
| 697 | + @"<IMG SRC=# onmouseover=\"alert('xxs')\">": @"bIMGSRCOnmouseoverAlertXxs", | |
| 698 | + @"NIL": @"bNIL", | |
| 699 | + @"--><script>alert(123)</script>": @"bScriptAlert123Script", | |
| 700 | + @"`touch /tmp/blns.fail`": @"bTouchTmpBlnsFail", | |
| 701 | + @"basement": @"basement", | |
| 702 | + @"But now...\033[20Cfor my greatest trick...\033[8m": @"butNow20CforMyGreatestTrick8M", | |
| 703 | + @"# \"Byte order marks\", U+FEFF and U+FFFE, each on its own line.": @"byteOrderMarksUFEFFAndUFFFEEachOnItsOwnLine", | |
| 704 | + @"COM1": @"com1", | |
| 705 | + @"COM3": @"com3", | |
| 706 | + @"# Commonly misinterpreted as additional graphic characters.": @"commonlyMisinterpretedAsAdditionalGraphicCharacters", | |
| 707 | + @"CON": @"con", | |
| 708 | + @"# contexts. Divided into three groups based on (US-layout) keyboard position.": @"contextsDividedIntoThreeGroupsBasedOnUSLayoutKeyboardPosition", | |
| 709 | + @"#\tCredit: https://twitter.com/jifa/status/625776454479970304": @"creditHTTPSTwitterCOMJifaStatus625776454479970304", | |
| 710 | + @"/dev/null; touch /tmp/blns.fail ; echo": @"devNullTouchTmpBlnsFailEcho", | |
| 711 | + @"\001\002\003\004\005\006\007\010\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\177": @"empty", | |
| 712 | + @"eval(\"puts 'hello world'\")": @"evalPutsHelloWorld", | |
| 713 | + @"expression": @"expression", | |
| 714 | + @"File:///": @"file", | |
| 715 | + @"#\tFile Inclusion": @"fileInclusion", | |
| 716 | + @"<foo val=”bar“ />": @"fooValBar", | |
| 717 | + @"# general category Cf (in Unicode 8.0.0).": @"generalCategoryCFInUnicode800", | |
| 718 | + @"̦H̬̤̗̤͝e͜ ̜̥̝̻͍̟́w̕h̖̯͓o̝͙̖͎̱̮ ҉̺̙̞̟͈W̷̼̭a̺̪͍į͈͕̭͙̯̜t̶̼̮s̘͙͖̕ ̠̫̠B̻͍͙͉̳ͅe̵h̵̬͇̫͙i̹͓̳̳̮͎̫̕n͟d̴̪̜̖ ̰͉̩͇͙̲͞ͅT͖̼͓̪͢h͏͓̮̻e̬̝̟ͅ ̤̹̝W͙̞̝͔͇͝ͅa͏͓͔̹̼̣l̴͔̰̤̟͔ḽ̫.͕": @"hEWHOWAĮTSBEHINDTHEWALḼ", | |
| 719 | + @"--help": @"help", | |
| 720 | + @"http://a/%%30%30": @"httpA3030", | |
| 721 | + @"#\tiOS Vulnerabilities": @"iOSVulnerabilities", | |
| 722 | + @"If you're reading this, you've been in a coma for almost 20 years now. We're trying a new technique. We don't know where this message will end up in your dream, but we hope it works. Please wake up, we miss you.": @"ifYouReReadingThisYouVeBeenInAComaForAlmost20YearsNowWeReTryingANewTechniqueWeDonTKnowWhereThisMessageWillEndUpInYourDreamButWeHopeItWorksPleaseWakeUpWeMissYou", | |
| 723 | + @"<iframe src=http://ha.ckers.org/scriptlet.html <": @"iframeSrcHTTPHaCkersOrgScriptletHTML", | |
| 724 | + @"<IMG SRC=\"  javascript:alert('XSS');\">": @"imgSRC14JavascriptAlertXSS", | |
| 725 | + @"<IMG SRC=\"jav	ascript:alert('XSS');\">": @"imgSRCJavX09AscriptAlertXSS", | |
| 726 | + @"<IMG SRC= onmouseover=\"alert('xxs')\">": @"imgSRCOnmouseoverAlertXxs", | |
| 727 | + @"<IMG SRC=javascript:alert('XSS')>": @"imgSRCX6AX61X76X61X73X63X72X69X70X74X3AX61X6CX65X72X74X28X27X58X53X53X27X29", | |
| 728 | + @"<IMG SRC=javascript:alert('XSS')>": @"imgSrc00001060000097000011800000970000115000009900001140000105000011200001160000058000009700001080000101000011400001160000040000003900000880000083000008300000390000041", | |
| 729 | + @"<img src\\x00=x onerror=\"javascript:alert(1)\">": @"imgSrcX00XOnerrorJavascriptAlert1", | |
| 730 | + @"<img src=x onerror=\\x11\"javascript:alert(1)\">": @"imgSrcXOnerrorX11JavascriptAlert1", | |
| 731 | + @"<img src=x onerror=\\x12\"javascript:alert(1)\">": @"imgSrcXOnerrorX12JavascriptAlert1", | |
| 732 | + @"`\"'><img src=xxx:x \\x0Aonerror=javascript:alert(1)>": @"imgSrcXxxXX0AonerrorJavascriptAlert1", | |
| 733 | + @"`\"'><img src=xxx:x \\x0Conerror=javascript:alert(1)>": @"imgSrcXxxXX0ConerrorJavascriptAlert1", | |
| 734 | + @"`\"'><img src=xxx:x \\x0Donerror=javascript:alert(1)>": @"imgSrcXxxXX0DonerrorJavascriptAlert1", | |
| 735 | + @"<img \\x00src=x onerror=\"javascript:alert(1)\">": @"imgX00SrcXOnerrorJavascriptAlert1", | |
| 736 | + @"<img \\x11src=x onerror=\"javascript:alert(1)\">": @"imgX11SrcXOnerrorJavascriptAlert1", | |
| 737 | + @"<img \\x12src=x onerror=\"javascript:alert(1)\">": @"imgX12SrcXOnerrorJavascriptAlert1", | |
| 738 | + @"<img \\x47src=x onerror=\"javascript:alert(1)\">": @"imgX47SrcXOnerrorJavascriptAlert1", | |
| 739 | + @"# IRC specific strings": @"ircSpecificStrings", | |
| 740 | + @"dontMakeAMap": @"isDontMakeAMap", | |
| 741 | + @"#\tJapanese Emoticons": @"japaneseEmoticons", | |
| 742 | + @"Kernel.exec(\"ls -al /\")": @"kernelExecLsAl", | |
| 743 | + @"Linda Callahan": @"lindaCallahan", | |
| 744 | + @"NUL": @"nul", | |
| 745 | + @"null": @"null", | |
| 746 | + @"#\tNumeric Strings": @"numericStrings", | |
| 747 | + @"# Often forbidden to appear in various text-based file formats (e.g. XML),": @"oftenForbiddenToAppearInVariousTextBasedFileFormatsEGXML", | |
| 748 | + @"#": @"one", | |
| 749 | + @"\" onfocus=JaVaSCript:alert(123) autofocus": @"onfocusJaVaSCriptAlert123Autofocus", | |
| 750 | + @"' OR 1=1 -- 1": @"or111", | |
| 751 | + @"#\tQuotation Marks": @"quotationMarks", | |
| 752 | + @"# Regional Indicator Symbols": @"regionalIndicatorSymbols", | |
| 753 | + @"# Regional Indicator Symbols can be displayed differently across": @"regionalIndicatorSymbolsCanBeDisplayedDifferentlyAcross", | |
| 754 | + @"#\tReserved Strings": @"reservedStrings", | |
| 755 | + @"\"><script>alert(123)</script>": @"scriptAlert123Script", | |
| 756 | + @"><script>alert(123);</script x=": @"scriptAlert123ScriptX", | |
| 757 | + @"<<SCRIPT>alert(\"XSS\");//<</SCRIPT>": @"scriptAlertXSSSCRIPT", | |
| 758 | + @"<SCRIPT SRC=//ha.ckers.org/.j>": @"scriptSRCHaCkersOrgJ", | |
| 759 | + @"<script src=\"\\\\%(jscript)s\"></script>": @"scriptSrcJscriptSScript", | |
| 760 | + @"\"`'><script>\\x09javascript:alert(1)</script>": @"scriptX09JavascriptAlert1Script", | |
| 761 | + @"<script\\x0Atype=\"text/javascript\">javascript:alert(1);</script>": @"scriptX0AtypeTextJavascriptJavascriptAlert1Script", | |
| 762 | + @"<script\\x0Dtype=\"text/javascript\">javascript:alert(1);</script>": @"scriptX0DtypeTextJavascriptJavascriptAlert1Script", | |
| 763 | + @"\"`'><script>\\x21javascript:alert(1)</script>": @"scriptX21JavascriptAlert1Script", | |
| 764 | + @"\"`'><script>\\x3Bjavascript:alert(1)</script>": @"scriptX3BjavascriptAlert1Script", | |
| 765 | + @"\"`'><script>\\xE2\\x80\\x85javascript:alert(1)</script>": @"scriptXE2X80X85JavascriptAlert1Script", | |
| 766 | + @"\"`'><script>\\xE2\\x80\\x87javascript:alert(1)</script>": @"scriptXE2X80X87JavascriptAlert1Script", | |
| 767 | + @"\"`'><script>\\xE2\\x80\\x8Ajavascript:alert(1)</script>": @"scriptXE2X80X8AjavascriptAlert1Script", | |
| 768 | + @"\"`'><script>\\xE2\\x80\\xA8javascript:alert(1)</script>": @"scriptXE2X80XA8JavascriptAlert1Script", | |
| 769 | + @"\"`'><script>\\xE2\\x80\\xA9javascript:alert(1)</script>": @"scriptXE2X80XA9JavascriptAlert1Script", | |
| 770 | + @"\"`'><script>\\xE2\\x80\\xAFjavascript:alert(1)</script>": @"scriptXE2X80XAFjavascriptAlert1Script", | |
| 771 | + @"\"`'><script>\\xE3\\x80\\x80javascript:alert(1)</script>": @"scriptXE3X80X80JavascriptAlert1Script", | |
| 772 | + @"#\tScunthorpe Problem": @"scunthorpeProblem", | |
| 773 | + @"(。◕ ∀ ◕。)": @"some", | |
| 774 | + @"# Strings that may occur on IRC clients that make security products freak out": @"stringsThatMayOccurOnIRCClientsThatMakeSecurityProductsFreakOut", | |
| 775 | + @"#\tStrings which are reserved characters in MSDOS/Windows": @"stringsWhichAreReservedCharactersInMSDOSWindows", | |
| 776 | + @"#\tStrings which attempt to invoke a benign script injection; shows vulnerability to XSS": @"stringsWhichAttemptToInvokeABenignScriptInjectionShowsVulnerabilityToXSS", | |
| 777 | + @"#\tStrings which contain text that should be rendered RTL if possible (e.g. Arabic, Hebrew)": @"stringsWhichContainTextThatShouldBeRenderedRTLIfPossibleEGArabicHebrew", | |
| 778 | + @"#\tStrings which contain two-byte characters: can cause rendering issues or character-length issues": @"stringsWhichContainTwoByteCharactersCanCauseRenderingIssuesOrCharacterLengthIssues", | |
| 779 | + @"#\tStrings which contain unicode numbers; if the code is localized, it should see the input as numeric": @"stringsWhichContainUnicodeNumbersIfTheCodeIsLocalizedItShouldSeeTheInputAsNumeric", | |
| 780 | + @"#\tStrings which may be used elsewhere in code": @"stringsWhichMayBeUsedElsewhereInCode", | |
| 781 | + @"#\tTerminal escape codes": @"terminalEscapeCodes", | |
| 782 | + @"\"": @"the", | |
| 783 | + @"0.00": @"the000", | |
| 784 | + @"01000": @"the01000", | |
| 785 | + @"08": @"the08", | |
| 786 | + @"09": @"the09", | |
| 787 | + @"0xffffffffffffffff": @"the0Xffffffffffffffff", | |
| 788 | + @"❤️ \U0001f494 \U0001f48c \U0001f495 \U0001f49e \U0001f493 \U0001f497 \U0001f496 \U0001f498 \U0001f49d \U0001f49f \U0001f49c \U0001f49b \U0001f49a \U0001f499": @"the1", | |
| 789 | + @"$1.00": @"the100", | |
| 790 | + @"1,0/0,0": @"the1000", | |
| 791 | + @"1 000.00": @"the100000", | |
| 792 | + @"1 000 000,00": @"the100000000", | |
| 793 | + @"1'; DROP TABLE users-- 1": @"the1DROPTABLEUsers1", | |
| 794 | + @"1#IND": @"the1Ind", | |
| 795 | + @"1#INF": @"the1Inf", | |
| 796 | + @"\U0001d54b\U0001d559\U0001d556 \U0001d562\U0001d566\U0001d55a\U0001d554\U0001d55c \U0001d553\U0001d563\U0001d560\U0001d568\U0001d55f \U0001d557\U0001d560\U0001d569 \U0001d55b\U0001d566\U0001d55e\U0001d561\U0001d564 \U0001d560\U0001d567\U0001d556\U0001d563 \U0001d565\U0001d559\U0001d556 \U0001d55d\U0001d552\U0001d56b\U0001d56a \U0001d555\U0001d560\U0001d558": @"the2", | |
| 797 | + @"-2147483648/-1": @"the21474836481", | |
| 798 | + @"2.2250738585072011e-308": @"the22250738585072011E308", | |
| 799 | + @"\U0001f60d": @"the3", | |
| 800 | + @"# The next line may appear to be blank, mojibake, or dingbats in some viewers.": @"theNextLineMayAppearToBeBlankMojibakeOrDingbatsInSomeViewers", | |
| 801 | + @"# The next line may appear to be blank or mojibake in some viewers.": @"theNextLineMayAppearToBeBlankOrMojibakeInSomeViewers", | |
| 802 | + @"# The next line may be flagged for \"trailing whitespace\" in some viewers.": @"theNextLineMayBeFlaggedForTrailingWhitespaceInSomeViewers", | |
| 803 | + @"<script>alert(123)</script>": @"theScriptAlert123Script", | |
| 804 | + @"123": @"the123", | |
| 805 | + @"# This file unfortunately cannot express strings containing": @"thisFileUnfortunatelyCannotExpressStringsContaining", | |
| 806 | + @"$(touch /tmp/blns.fail)": @"touchTmpBlnsFail", | |
| 807 | + @"() { _; } >_[$($())] { touch /tmp/blns.shellshock2.fail; }": @"touchTmpBlnsShellshock2Fail", | |
| 808 | + @"Tyson Gay": @"tysonGay", | |
| 809 | + @"#\tUnicode Symbols": @"unicodeSymbols", | |
| 810 | + @"'`\"><\\x00script>javascript:alert(1)</script>": @"x00ScriptJavascriptAlert1Script", | |
| 811 | + @"'`\"><\\x3Cscript>javascript:alert(1)</script>": @"x3CscriptJavascriptAlert1Script", | |
| 812 | + @"åß∂ƒ©˙∆˚¬…æ": @"åßƑÆ", | |
| 813 | + @"˙ɐnbᴉlɐ ɐuƃɐɯ ǝɹolop ʇǝ ǝɹoqɐl ʇn ʇunpᴉpᴉɔuᴉ ɹodɯǝʇ poɯsnᴉǝ op pǝs 'ʇᴉlǝ ƃuᴉɔsᴉdᴉpɐ ɹnʇǝʇɔǝsuoɔ 'ʇǝɯɐ ʇᴉs ɹolop ɯnsdᴉ ɯǝɹo˥": @"ɐnbᴉlɐⱯuƃɐɯƎɹolopꞱǝƎɹoqɐlꞱnꞱunpᴉpᴉɔuᴉɹodɯǝʇPoɯsnᴉǝOpPǝsꞱᴉlǝƂuᴉɔsᴉdᴉpɐɹnʇǝʇɔǝsuoɔꞱǝɯɐꞱᴉsɹolopƜnsdᴉƜǝɹo", | |
| 814 | + @"Ω≈ç√∫˜µ≤≥÷": @"ωÇΜ", | |
| 815 | + @"ヽ༼ຈل͜ຈ༽ノ ヽ༼ຈل͜ຈ༽ノ": @"ຈل͜ຈノヽຈل͜ຈノ", | |
| 816 | + @"Ṱ̺̺̕o͞ ̷i̲̬͇̪͙n̝̗͕v̟̜̘̦͟o̶̙̰̠kè͚̮̺̪̹̱̤ ̖t̝͕̳̣̻̪͞h̼͓̲̦̳̘̲e͇̣̰̦̬͎ ̢̼̻̱̘h͚͎͙̜̣̲ͅi̦̲̣̰̤v̻͍e̺̭̳̪̰-m̢iͅn̖̺̞̲̯̰d̵̼̟͙̩̼̘̳ ̞̥̱̳̭r̛̗̘e͙p͠r̼̞̻̭̗e̺̠̣͟s̘͇̳͍̝͉e͉̥̯̞̲͚̬͜ǹ̬͎͎̟̖͇̤t͍̬̤͓̼̭͘ͅi̪̱n͠g̴͉ ͏͉ͅc̬̟h͡a̫̻̯͘o̫̟̖͍̙̝͉s̗̦̲.̨̹͈̣": @"ṱOINVOKèTHEHIVEMINDREPRESEǸTINGCHAOS", | |
| 817 | + @"社會科學院語學研究所": @"社會科學院語學研究所", | |
| 818 | + @"部落格": @"部落格", | |
| 819 | + @"사회과학원 어학연구소": @"사회과학원어학연구소", | |
| 820 | + @"찦차를 타고 온 펲시맨과 쑛다리 똠방각하": @"찦차를타고온펲시맨과쑛다리똠방각하", | |
| 821 | + @"ﷺ": @"ﷺ", | |
| 822 | + @"__ロ(,_,*)": @"ロ_", | |
| 823 | + }; | |
| 824 | +} | |
| 825 | + | |
| 826 | ++ (instancetype)fromJSONDictionary:(NSDictionary *)dict | |
| 827 | +{ | |
| 828 | + return [dict isKindOfClass:NSDictionary.class] ? [[QTB alloc] initWithJSONDictionary:dict] : nil; | |
| 829 | +} | |
| 830 | + | |
| 831 | +- (instancetype)initWithJSONDictionary:(NSDictionary *)dict | |
| 832 | +{ | |
| 833 | + if (self = [super init]) { | |
| 834 | + if (![dict[@"<a href=http://foo.bar/#x=`y></a><img alt=\"`><img src=x:x onerror=javascript:alert(1)></a>\">"] isKindOfClass:NSString.class]) return nil; | |
| 835 | + if (![dict[@"<a href=\"javascript\\x00:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 836 | + if (![dict[@"<a href=\"javascript\\x0D:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 837 | + if (![dict[@"<a href=\"\\x02javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 838 | + if (![dict[@"<a href=\"\\x04javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 839 | + if (![dict[@"<a href=\"\\x0Ajavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 840 | + if (![dict[@"<a href=\"\\x0Djavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 841 | + if (![dict[@"<a href=\"\\x0Ejavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 842 | + if (![dict[@"<a href=\"\\x0Fjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 843 | + if (![dict[@"<a href=\"\\x16javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 844 | + if (![dict[@"<a href=\"\\x19javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 845 | + if (![dict[@"<a href=\"\\x1Ajavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 846 | + if (![dict[@"<a href=\"\\x1Djavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 847 | + if (![dict[@"<a href=\"\\x1Ejavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 848 | + if (![dict[@"<a href=\"\\xE2\\x80\\x81javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 849 | + if (![dict[@"<a href=\"\\xE2\\x80\\x82javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 850 | + if (![dict[@"<a href=\"\\xE2\\x80\\xA9javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 851 | + if (![dict[@"<a href=\"\\xE2\\x80\\xAFjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 852 | + if (![dict[@"ABC<div style=\"x:expression\\x5C(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 853 | + if (![dict[@"ABC<div style=\"x:\\x0Aexpression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 854 | + if (![dict[@"ABC<div style=\"x:\\x0Dexpression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 855 | + if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x82expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 856 | + if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x83expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 857 | + if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x85expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 858 | + if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x87expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 859 | + if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x8Aexpression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 860 | + if (![dict[@"⁰⁴⁵₀₁₂"] isKindOfClass:NSString.class]) return nil; | |
| 861 | + if (![dict[@"# appear in input."] isKindOfClass:NSString.class]) return nil; | |
| 862 | + if (![dict[@"+++ATH0"] isKindOfClass:NSString.class]) return nil; | |
| 863 | + if (![dict[@"' autofocus onkeyup='javascript:alert(123)"] isKindOfClass:NSString.class]) return nil; | |
| 864 | + if (![dict[@"\t\013\014 \302\205 \u200b\u2028\u2029 "] isKindOfClass:NSString.class]) return nil; | |
| 865 | + if (![dict[@"1'000.00"] isKindOfClass:NSString.class]) return nil; | |
| 866 | + if (![dict[@"FALSE"] isKindOfClass:NSString.class]) return nil; | |
| 867 | + if (![dict[@"<IMG SRC=# onmouseover=\"alert('xxs')\">"] isKindOfClass:NSString.class]) return nil; | |
| 868 | + if (![dict[@"NIL"] isKindOfClass:NSString.class]) return nil; | |
| 869 | + if (![dict[@"--><script>alert(123)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 870 | + if (![dict[@"`touch /tmp/blns.fail`"] isKindOfClass:NSString.class]) return nil; | |
| 871 | + if (![dict[@"basement"] isKindOfClass:NSString.class]) return nil; | |
| 872 | + if (![dict[@"But now...\033[20Cfor my greatest trick...\033[8m"] isKindOfClass:NSString.class]) return nil; | |
| 873 | + if (![dict[@"# \"Byte order marks\", U+FEFF and U+FFFE, each on its own line."] isKindOfClass:NSString.class]) return nil; | |
| 874 | + if (![dict[@"COM1"] isKindOfClass:NSString.class]) return nil; | |
| 875 | + if (![dict[@"COM3"] isKindOfClass:NSString.class]) return nil; | |
| 876 | + if (![dict[@"# Commonly misinterpreted as additional graphic characters."] isKindOfClass:NSString.class]) return nil; | |
| 877 | + if (![dict[@"CON"] isKindOfClass:NSString.class]) return nil; | |
| 878 | + if (![dict[@"# contexts. Divided into three groups based on (US-layout) keyboard position."] isKindOfClass:NSString.class]) return nil; | |
| 879 | + if (![dict[@"#\tCredit: https://twitter.com/jifa/status/625776454479970304"] isKindOfClass:NSString.class]) return nil; | |
| 880 | + if (![dict[@"/dev/null; touch /tmp/blns.fail ; echo"] isKindOfClass:NSString.class]) return nil; | |
| 881 | + if (![dict[@"\001\002\003\004\005\006\007\010\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\177"] isKindOfClass:NSString.class]) return nil; | |
| 882 | + if (![dict[@"eval(\"puts 'hello world'\")"] isKindOfClass:NSString.class]) return nil; | |
| 883 | + if (![dict[@"expression"] isKindOfClass:NSString.class]) return nil; | |
| 884 | + if (![dict[@"File:///"] isKindOfClass:NSString.class]) return nil; | |
| 885 | + if (![dict[@"#\tFile Inclusion"] isKindOfClass:NSString.class]) return nil; | |
| 886 | + if (![dict[@"<foo val=”bar“ />"] isKindOfClass:NSString.class]) return nil; | |
| 887 | + if (![dict[@"# general category Cf (in Unicode 8.0.0)."] isKindOfClass:NSString.class]) return nil; | |
| 888 | + if (![dict[@"̦H̬̤̗̤͝e͜ ̜̥̝̻͍̟́w̕h̖̯͓o̝͙̖͎̱̮ ҉̺̙̞̟͈W̷̼̭a̺̪͍į͈͕̭͙̯̜t̶̼̮s̘͙͖̕ ̠̫̠B̻͍͙͉̳ͅe̵h̵̬͇̫͙i̹͓̳̳̮͎̫̕n͟d̴̪̜̖ ̰͉̩͇͙̲͞ͅT͖̼͓̪͢h͏͓̮̻e̬̝̟ͅ ̤̹̝W͙̞̝͔͇͝ͅa͏͓͔̹̼̣l̴͔̰̤̟͔ḽ̫.͕"] isKindOfClass:NSString.class]) return nil; | |
| 889 | + if (![dict[@"--help"] isKindOfClass:NSString.class]) return nil; | |
| 890 | + if (![dict[@"http://a/%%30%30"] isKindOfClass:NSString.class]) return nil; | |
| 891 | + if (![dict[@"#\tiOS Vulnerabilities"] isKindOfClass:NSString.class]) return nil; | |
| 892 | + if (![dict[@"If you're reading this, you've been in a coma for almost 20 years now. We're trying a new technique. We don't know where this message will end up in your dream, but we hope it works. Please wake up, we miss you."] isKindOfClass:NSString.class]) return nil; | |
| 893 | + if (![dict[@"<iframe src=http://ha.ckers.org/scriptlet.html <"] isKindOfClass:NSString.class]) return nil; | |
| 894 | + if (![dict[@"<IMG SRC=\"  javascript:alert('XSS');\">"] isKindOfClass:NSString.class]) return nil; | |
| 895 | + if (![dict[@"<IMG SRC=\"jav	ascript:alert('XSS');\">"] isKindOfClass:NSString.class]) return nil; | |
| 896 | + if (![dict[@"<IMG SRC= onmouseover=\"alert('xxs')\">"] isKindOfClass:NSString.class]) return nil; | |
| 897 | + if (![dict[@"<IMG SRC=javascript:alert('XSS')>"] isKindOfClass:NSString.class]) return nil; | |
| 898 | + if (![dict[@"<IMG SRC=javascript:alert('XSS')>"] isKindOfClass:NSString.class]) return nil; | |
| 899 | + if (![dict[@"<img src\\x00=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 900 | + if (![dict[@"<img src=x onerror=\\x11\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 901 | + if (![dict[@"<img src=x onerror=\\x12\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 902 | + if (![dict[@"`\"'><img src=xxx:x \\x0Aonerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil; | |
| 903 | + if (![dict[@"`\"'><img src=xxx:x \\x0Conerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil; | |
| 904 | + if (![dict[@"`\"'><img src=xxx:x \\x0Donerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil; | |
| 905 | + if (![dict[@"<img \\x00src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 906 | + if (![dict[@"<img \\x11src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 907 | + if (![dict[@"<img \\x12src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 908 | + if (![dict[@"<img \\x47src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 909 | + if (![dict[@"# IRC specific strings"] isKindOfClass:NSString.class]) return nil; | |
| 910 | + if (![dict[@"dontMakeAMap"] isKindOfClass:NSNumber.class]) return nil; | |
| 911 | + if (![dict[@"#\tJapanese Emoticons"] isKindOfClass:NSString.class]) return nil; | |
| 912 | + if (![dict[@"Kernel.exec(\"ls -al /\")"] isKindOfClass:NSString.class]) return nil; | |
| 913 | + if (![dict[@"Linda Callahan"] isKindOfClass:NSString.class]) return nil; | |
| 914 | + if (![dict[@"NUL"] isKindOfClass:NSString.class]) return nil; | |
| 915 | + if (![dict[@"null"] isKindOfClass:NSString.class]) return nil; | |
| 916 | + if (![dict[@"#\tNumeric Strings"] isKindOfClass:NSString.class]) return nil; | |
| 917 | + if (![dict[@"# Often forbidden to appear in various text-based file formats (e.g. XML),"] isKindOfClass:NSString.class]) return nil; | |
| 918 | + if (![dict[@"#"] isKindOfClass:NSString.class]) return nil; | |
| 919 | + if (![dict[@"\" onfocus=JaVaSCript:alert(123) autofocus"] isKindOfClass:NSString.class]) return nil; | |
| 920 | + if (![dict[@"' OR 1=1 -- 1"] isKindOfClass:NSString.class]) return nil; | |
| 921 | + if (![dict[@"#\tQuotation Marks"] isKindOfClass:NSString.class]) return nil; | |
| 922 | + if (![dict[@"# Regional Indicator Symbols"] isKindOfClass:NSString.class]) return nil; | |
| 923 | + if (![dict[@"# Regional Indicator Symbols can be displayed differently across"] isKindOfClass:NSString.class]) return nil; | |
| 924 | + if (![dict[@"#\tReserved Strings"] isKindOfClass:NSString.class]) return nil; | |
| 925 | + if (![dict[@"\"><script>alert(123)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 926 | + if (![dict[@"><script>alert(123);</script x="] isKindOfClass:NSString.class]) return nil; | |
| 927 | + if (![dict[@"<<SCRIPT>alert(\"XSS\");//<</SCRIPT>"] isKindOfClass:NSString.class]) return nil; | |
| 928 | + if (![dict[@"<SCRIPT SRC=//ha.ckers.org/.j>"] isKindOfClass:NSString.class]) return nil; | |
| 929 | + if (![dict[@"<script src=\"\\\\%(jscript)s\"></script>"] isKindOfClass:NSString.class]) return nil; | |
| 930 | + if (![dict[@"\"`'><script>\\x09javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 931 | + if (![dict[@"<script\\x0Atype=\"text/javascript\">javascript:alert(1);</script>"] isKindOfClass:NSString.class]) return nil; | |
| 932 | + if (![dict[@"<script\\x0Dtype=\"text/javascript\">javascript:alert(1);</script>"] isKindOfClass:NSString.class]) return nil; | |
| 933 | + if (![dict[@"\"`'><script>\\x21javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 934 | + if (![dict[@"\"`'><script>\\x3Bjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 935 | + if (![dict[@"\"`'><script>\\xE2\\x80\\x85javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 936 | + if (![dict[@"\"`'><script>\\xE2\\x80\\x87javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 937 | + if (![dict[@"\"`'><script>\\xE2\\x80\\x8Ajavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 938 | + if (![dict[@"\"`'><script>\\xE2\\x80\\xA8javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 939 | + if (![dict[@"\"`'><script>\\xE2\\x80\\xA9javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 940 | + if (![dict[@"\"`'><script>\\xE2\\x80\\xAFjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 941 | + if (![dict[@"\"`'><script>\\xE3\\x80\\x80javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 942 | + if (![dict[@"#\tScunthorpe Problem"] isKindOfClass:NSString.class]) return nil; | |
| 943 | + if (![dict[@"(。◕ ∀ ◕。)"] isKindOfClass:NSString.class]) return nil; | |
| 944 | + if (![dict[@"# Strings that may occur on IRC clients that make security products freak out"] isKindOfClass:NSString.class]) return nil; | |
| 945 | + if (![dict[@"#\tStrings which are reserved characters in MSDOS/Windows"] isKindOfClass:NSString.class]) return nil; | |
| 946 | + if (![dict[@"#\tStrings which attempt to invoke a benign script injection; shows vulnerability to XSS"] isKindOfClass:NSString.class]) return nil; | |
| 947 | + if (![dict[@"#\tStrings which contain text that should be rendered RTL if possible (e.g. Arabic, Hebrew)"] isKindOfClass:NSString.class]) return nil; | |
| 948 | + if (![dict[@"#\tStrings which contain two-byte characters: can cause rendering issues or character-length issues"] isKindOfClass:NSString.class]) return nil; | |
| 949 | + if (![dict[@"#\tStrings which contain unicode numbers; if the code is localized, it should see the input as numeric"] isKindOfClass:NSString.class]) return nil; | |
| 950 | + if (![dict[@"#\tStrings which may be used elsewhere in code"] isKindOfClass:NSString.class]) return nil; | |
| 951 | + if (![dict[@"#\tTerminal escape codes"] isKindOfClass:NSString.class]) return nil; | |
| 952 | + if (![dict[@"\""] isKindOfClass:NSString.class]) return nil; | |
| 953 | + if (![dict[@"0.00"] isKindOfClass:NSString.class]) return nil; | |
| 954 | + if (![dict[@"01000"] isKindOfClass:NSString.class]) return nil; | |
| 955 | + if (![dict[@"08"] isKindOfClass:NSString.class]) return nil; | |
| 956 | + if (![dict[@"09"] isKindOfClass:NSString.class]) return nil; | |
| 957 | + if (![dict[@"0xffffffffffffffff"] isKindOfClass:NSString.class]) return nil; | |
| 958 | + if (![dict[@"❤️ \U0001f494 \U0001f48c \U0001f495 \U0001f49e \U0001f493 \U0001f497 \U0001f496 \U0001f498 \U0001f49d \U0001f49f \U0001f49c \U0001f49b \U0001f49a \U0001f499"] isKindOfClass:NSString.class]) return nil; | |
| 959 | + if (![dict[@"$1.00"] isKindOfClass:NSString.class]) return nil; | |
| 960 | + if (![dict[@"1,0/0,0"] isKindOfClass:NSString.class]) return nil; | |
| 961 | + if (![dict[@"1 000.00"] isKindOfClass:NSString.class]) return nil; | |
| 962 | + if (![dict[@"1 000 000,00"] isKindOfClass:NSString.class]) return nil; | |
| 963 | + if (![dict[@"1'; DROP TABLE users-- 1"] isKindOfClass:NSString.class]) return nil; | |
| 964 | + if (![dict[@"1#IND"] isKindOfClass:NSString.class]) return nil; | |
| 965 | + if (![dict[@"1#INF"] isKindOfClass:NSString.class]) return nil; | |
| 966 | + if (![dict[@"\U0001d54b\U0001d559\U0001d556 \U0001d562\U0001d566\U0001d55a\U0001d554\U0001d55c \U0001d553\U0001d563\U0001d560\U0001d568\U0001d55f \U0001d557\U0001d560\U0001d569 \U0001d55b\U0001d566\U0001d55e\U0001d561\U0001d564 \U0001d560\U0001d567\U0001d556\U0001d563 \U0001d565\U0001d559\U0001d556 \U0001d55d\U0001d552\U0001d56b\U0001d56a \U0001d555\U0001d560\U0001d558"] isKindOfClass:NSString.class]) return nil; | |
| 967 | + if (![dict[@"-2147483648/-1"] isKindOfClass:NSString.class]) return nil; | |
| 968 | + if (![dict[@"2.2250738585072011e-308"] isKindOfClass:NSString.class]) return nil; | |
| 969 | + if (![dict[@"\U0001f60d"] isKindOfClass:NSString.class]) return nil; | |
| 970 | + if (![dict[@"# The next line may appear to be blank, mojibake, or dingbats in some viewers."] isKindOfClass:NSString.class]) return nil; | |
| 971 | + if (![dict[@"# The next line may appear to be blank or mojibake in some viewers."] isKindOfClass:NSString.class]) return nil; | |
| 972 | + if (![dict[@"# The next line may be flagged for \"trailing whitespace\" in some viewers."] isKindOfClass:NSString.class]) return nil; | |
| 973 | + if (![dict[@"<script>alert(123)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 974 | + if (![dict[@"123"] isKindOfClass:NSString.class]) return nil; | |
| 975 | + if (![dict[@"# This file unfortunately cannot express strings containing"] isKindOfClass:NSString.class]) return nil; | |
| 976 | + if (![dict[@"$(touch /tmp/blns.fail)"] isKindOfClass:NSString.class]) return nil; | |
| 977 | + if (![dict[@"() { _; } >_[$($())] { touch /tmp/blns.shellshock2.fail; }"] isKindOfClass:NSString.class]) return nil; | |
| 978 | + if (![dict[@"Tyson Gay"] isKindOfClass:NSString.class]) return nil; | |
| 979 | + if (![dict[@"#\tUnicode Symbols"] isKindOfClass:NSString.class]) return nil; | |
| 980 | + if (![dict[@"'`\"><\\x00script>javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 981 | + if (![dict[@"'`\"><\\x3Cscript>javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 982 | + if (![dict[@"åß∂ƒ©˙∆˚¬…æ"] isKindOfClass:NSString.class]) return nil; | |
| 983 | + if (![dict[@"˙ɐnbᴉlɐ ɐuƃɐɯ ǝɹolop ʇǝ ǝɹoqɐl ʇn ʇunpᴉpᴉɔuᴉ ɹodɯǝʇ poɯsnᴉǝ op pǝs 'ʇᴉlǝ ƃuᴉɔsᴉdᴉpɐ ɹnʇǝʇɔǝsuoɔ 'ʇǝɯɐ ʇᴉs ɹolop ɯnsdᴉ ɯǝɹo˥"] isKindOfClass:NSString.class]) return nil; | |
| 984 | + if (![dict[@"Ω≈ç√∫˜µ≤≥÷"] isKindOfClass:NSString.class]) return nil; | |
| 985 | + if (![dict[@"ヽ༼ຈل͜ຈ༽ノ ヽ༼ຈل͜ຈ༽ノ"] isKindOfClass:NSString.class]) return nil; | |
| 986 | + if (![dict[@"Ṱ̺̺̕o͞ ̷i̲̬͇̪͙n̝̗͕v̟̜̘̦͟o̶̙̰̠kè͚̮̺̪̹̱̤ ̖t̝͕̳̣̻̪͞h̼͓̲̦̳̘̲e͇̣̰̦̬͎ ̢̼̻̱̘h͚͎͙̜̣̲ͅi̦̲̣̰̤v̻͍e̺̭̳̪̰-m̢iͅn̖̺̞̲̯̰d̵̼̟͙̩̼̘̳ ̞̥̱̳̭r̛̗̘e͙p͠r̼̞̻̭̗e̺̠̣͟s̘͇̳͍̝͉e͉̥̯̞̲͚̬͜ǹ̬͎͎̟̖͇̤t͍̬̤͓̼̭͘ͅi̪̱n͠g̴͉ ͏͉ͅc̬̟h͡a̫̻̯͘o̫̟̖͍̙̝͉s̗̦̲.̨̹͈̣"] isKindOfClass:NSString.class]) return nil; | |
| 987 | + if (![dict[@"社會科學院語學研究所"] isKindOfClass:NSString.class]) return nil; | |
| 988 | + if (![dict[@"部落格"] isKindOfClass:NSString.class]) return nil; | |
| 989 | + if (![dict[@"사회과학원 어학연구소"] isKindOfClass:NSString.class]) return nil; | |
| 990 | + if (![dict[@"찦차를 타고 온 펲시맨과 쑛다리 똠방각하"] isKindOfClass:NSString.class]) return nil; | |
| 991 | + if (![dict[@"ﷺ"] isKindOfClass:NSString.class]) return nil; | |
| 992 | + if (![dict[@"__ロ(,_,*)"] isKindOfClass:NSString.class]) return nil; | |
| 993 | + [self setValuesForKeysWithDictionary:dict]; | |
| 994 | + } | |
| 995 | + return self; | |
| 996 | +} | |
| 997 | + | |
| 998 | +- (void)setValue:(nullable id)value forKey:(NSString *)key | |
| 999 | +{ | |
| 1000 | + id resolved = QTB.properties[key]; | |
| 1001 | + if (resolved) [super setValue:value forKey:resolved]; | |
| 1002 | +} | |
| 1003 | + | |
| 1004 | +- (void)setNilValueForKey:(NSString *)key | |
| 1005 | +{ | |
| 1006 | + id resolved = QTB.properties[key]; | |
| 1007 | + if (resolved) [super setValue:@(0) forKey:resolved]; | |
| 1008 | +} | |
| 1009 | + | |
| 1010 | +- (NSDictionary *)JSONDictionary | |
| 1011 | +{ | |
| 1012 | + id dict = [[self dictionaryWithValuesForKeys:QTB.properties.allValues] mutableCopy]; | |
| 1013 | + | |
| 1014 | + for (id jsonName in QTB.properties) { | |
| 1015 | + id propertyName = QTB.properties[jsonName]; | |
| 1016 | + if (![jsonName isEqualToString:propertyName]) { | |
| 1017 | + dict[jsonName] = dict[propertyName]; | |
| 1018 | + [dict removeObjectForKey:propertyName]; | |
| 1019 | + } | |
| 1020 | + } | |
| 1021 | + | |
| 1022 | + [dict addEntriesFromDictionary:@{ | |
| 1023 | + @"dontMakeAMap": _isDontMakeAMap ? @YES : @NO, | |
| 1024 | + }]; | |
| 1025 | + | |
| 1026 | + return dict; | |
| 1027 | +} | |
| 1028 | +@end | |
| 1029 | + | |
| 1030 | +@implementation QTC | |
| 1031 | ++ (NSDictionary<NSString *, NSString *> *)properties | |
| 1032 | +{ | |
| 1033 | + static NSDictionary<NSString *, NSString *> *properties; | |
| 1034 | + return properties = properties ? properties : @{ | |
| 1035 | + @"\U0002070e\U00020731\U00020779\U00020c53\U00020c78\U00020c96\U00020ccf": @"_1", | |
| 1036 | + @"A:": @"a", | |
| 1037 | + @"<a href=\"\\x00javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX00JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1038 | + @"<a href=\"\\x03javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX03JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1039 | + @"<a href=\"\\x06javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX06JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1040 | + @"<a href=\"\\x07javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX07JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1041 | + @"<a href=\"\\x0Bjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX0BjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1042 | + @"<a href=\"\\x12javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX12JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1043 | + @"<a href=\"\\x14javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX14JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1044 | + @"<a href=\"\\x15javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX15JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1045 | + @"<a href=\"\\x18javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX18JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1046 | + @"<a href=\"\\x1Bjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX1BjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1047 | + @"<a href=\"\\x1Cjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX1CjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1048 | + @"<a href=\"\\x20javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX20JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1049 | + @"<a href=\"\\xE2\\x80\\x80javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X80JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1050 | + @"<a href=\"\\xE2\\x80\\x85javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X85JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1051 | + @"<a href=\"\\xE2\\x80\\x88javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X88JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1052 | + @"<a href=\"\\xE2\\x80\\x89javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X89JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1053 | + @"<a href=\"\\xE2\\x80\\x8Ajavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X8AjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1054 | + @"<a href=\"\\xE2\\x81\\x9Fjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X81X9FjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1055 | + @"<a href=\"\\xE3\\x80\\x80javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE3X80X80JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1056 | + @"ABC<div style=\"x:expression\\x00(javascript:alert(1)\">DEF": @"abcDivStyleXExpressionX00JavascriptAlert1DEF", | |
| 1057 | + @"ABC<div style=\"x:\\x00expression(javascript:alert(1)\">DEF": @"abcDivStyleXX00ExpressionJavascriptAlert1DEF", | |
| 1058 | + @"ABC<div style=\"x:\\x0Cexpression(javascript:alert(1)\">DEF": @"abcDivStyleXX0CexpressionJavascriptAlert1DEF", | |
| 1059 | + @"ABC<div style=\"x:\\xE2\\x80\\x81expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X81ExpressionJavascriptAlert1DEF", | |
| 1060 | + @"ABC<div style=\"x:\\xE2\\x80\\x86expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X86ExpressionJavascriptAlert1DEF", | |
| 1061 | + @"ABC<div style=\"x:\\xE2\\x80\\x88expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X88ExpressionJavascriptAlert1DEF", | |
| 1062 | + @"ABC<div style=\"x:\\xE3\\x80\\x80expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE3X80X80ExpressionJavascriptAlert1DEF", | |
| 1063 | + @"ABC<div style=\"x:\\xEF\\xBB\\xBFexpression(javascript:alert(1)\">DEF": @"abcDivStyleXXEFXBBXBFexpressionJavascriptAlert1DEF", | |
| 1064 | + @"# and U+007F (DEL)": @"andU007FDEL", | |
| 1065 | + @"-": @"another", | |
| 1066 | + @"# ASCII punctuation. All of these characters may need to be escaped in some": @"asciiPunctuationAllOfTheseCharactersMayNeedToBeEscapedInSome", | |
| 1067 | + @"<BODY onload!#$%&()*~+-_.,:;?@[/|\\]^`=alert(\"XSS\")>": @"bodyOnloadAlertXSS", | |
| 1068 | + @"\"'\"'\"''''\"": @"c", | |
| 1069 | + @"-0.0": @"c00", | |
| 1070 | + @"0.0/0": @"c000", | |
| 1071 | + @"--1": @"c1", | |
| 1072 | + @"-1.00": @"c100", | |
| 1073 | + @"1,000.00": @"c100000", | |
| 1074 | + @"1,000,000.00": @"c100000000", | |
| 1075 | + @"1E+02": @"c1E02", | |
| 1076 | + @"><script>alert(123)</script>": @"cScriptAlert123Script", | |
| 1077 | + @"true": @"cTrue", | |
| 1078 | + @"CLOCK$": @"clock", | |
| 1079 | + @"COM2": @"com2", | |
| 1080 | + @"COM4": @"com4", | |
| 1081 | + @"Craig Cockburn, Software Specialist": @"craigCockburnSoftwareSpecialist", | |
| 1082 | + @"DCC SEND STARTKEYLOGGER 0 0 0": @"dccSendStartkeylogger000", | |
| 1083 | + @"#\tEmoji": @"emoji", | |
| 1084 | + @"\"\"": @"empty", | |
| 1085 | + @"evaluate": @"evaluate", | |
| 1086 | + @"<foo val=“bar” />": @"fooValBar", | |
| 1087 | + @"hasOwnProperty": @"hasOwnProperty", | |
| 1088 | + @"Horniman Museum": @"hornimanMuseum", | |
| 1089 | + @"http://www.cum.qc.ca/": @"httpWWWCumQcCA", | |
| 1090 | + @"<i onwheel=alert(1)> Scroll over me </i>": @"iOnwheelAlert1ScrollOverMeI", | |
| 1091 | + @"<img[a][b][c]src[d]=x[e]onerror=[f]\"alert(1)\">": @"imgABCSrcDXEOnerrorFAlert1", | |
| 1092 | + @"<IMG onmouseover=\"alert('xxs')\">": @"imgOnmouseoverAlertXxs", | |
| 1093 | + @"<IMG \"\"\"><SCRIPT>alert(\"XSS\")</SCRIPT>\">": @"imgSCRIPTAlertXSSSCRIPT", | |
| 1094 | + @"<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>": @"imgSRCJavascriptAlertStringFromCharCode888383", | |
| 1095 | + @"<IMG SRC=\"javascript:alert('XSS')\"": @"imgSRCJavascriptAlertXSS", | |
| 1096 | + @"<img src onerror /\" '\"= alt=javascript:alert(1)//\">": @"imgSrcOnerrorAltJavascriptAlert1", | |
| 1097 | + @"<img src\\x10=x onerror=\"javascript:alert(1)\">": @"imgSrcX10XOnerrorJavascriptAlert1", | |
| 1098 | + @"<img src\\x12=x onerror=\"javascript:alert(1)\">": @"imgSrcX12XOnerrorJavascriptAlert1", | |
| 1099 | + @"<img src\\x13=x onerror=\"javascript:alert(1)\">": @"imgSrcX13XOnerrorJavascriptAlert1", | |
| 1100 | + @"<img src\\x32=x onerror=\"javascript:alert(1)\">": @"imgSrcX32XOnerrorJavascriptAlert1", | |
| 1101 | + @"<img src\\x47=x onerror=\"javascript:alert(1)\">": @"imgSrcX47XOnerrorJavascriptAlert1", | |
| 1102 | + @"<img src=x onerror=alert(123) />": @"imgSrcXOnerrorAlert123", | |
| 1103 | + @"<img src=x onerror=\\x10\"javascript:alert(1)\">": @"imgSrcXOnerrorX10JavascriptAlert1", | |
| 1104 | + @"<img src=x onerror=\\x32\"javascript:alert(1)\">": @"imgSrcXOnerrorX32JavascriptAlert1", | |
| 1105 | + @"<img src=\"x` `<script>javascript:alert(1)</script>\"` `>": @"imgSrcXScriptJavascriptAlert1Script", | |
| 1106 | + @"`\"'><img src=xxx:x \\x09onerror=javascript:alert(1)>": @"imgSrcXxxXX09OnerrorJavascriptAlert1", | |
| 1107 | + @"`\"'><img src=xxx:x \\x20onerror=javascript:alert(1)>": @"imgSrcXxxXX20OnerrorJavascriptAlert1", | |
| 1108 | + @"`\"'><img src=xxx:x \\x22onerror=javascript:alert(1)>": @"imgSrcXxxXX22OnerrorJavascriptAlert1", | |
| 1109 | + @"`\"'><img src=xxx:x \\x27onerror=javascript:alert(1)>": @"imgSrcXxxXX27OnerrorJavascriptAlert1", | |
| 1110 | + @"<img\\x11src=x onerror=\"javascript:alert(1)\">": @"imgX11SrcXOnerrorJavascriptAlert1", | |
| 1111 | + @"<img \\x34src=x onerror=\"javascript:alert(1)\">": @"imgX34SrcXOnerrorJavascriptAlert1", | |
| 1112 | + @"<img\\x47src=x onerror=\"javascript:alert(1)\">": @"imgX47SrcXOnerrorJavascriptAlert1", | |
| 1113 | + @"Infinity": @"infinity", | |
| 1114 | + @"dontMakeAMap": @"isDontMakeAMap", | |
| 1115 | + @"JavaSCript:alert(123)": @"javaSCriptAlert123", | |
| 1116 | + @"LPT1": @"lpt1", | |
| 1117 | + @"<script>alert('123');</script>": @"ltScriptGtAlert3912339LtScriptGt", | |
| 1118 | + @"magna cum laude": @"magnaCumLaude", | |
| 1119 | + @"medieval erection of parapets": @"medievalErectionOfParapets", | |
| 1120 | + @"mocha": @"mocha", | |
| 1121 | + @"NaN": @"naN", | |
| 1122 | + @"# Non-whitespace C0 controls: U+0001 through U+0008, U+000E through U+001F,": @"nonWhitespaceC0ControlsU0001ThroughU0008U000EThroughU001F", | |
| 1123 | + @"NULL": @"null", | |
| 1124 | + @"%": @"one", | |
| 1125 | + @"0,,0": @"one00", | |
| 1126 | + @"1.000,00": @"one100000", | |
| 1127 | + @"1.000.000,00": @"one100000000", | |
| 1128 | + @"' onfocus=JaVaSCript:alert(123) autofocus": @"onfocusJaVaSCriptAlert123Autofocus", | |
| 1129 | + @"# or reused for internal delimiters on the theory that they should never": @"orReusedForInternalDelimitersOnTheTheoryThatTheyShouldNever", | |
| 1130 | + @"<plaintext>": @"plaintext", | |
| 1131 | + @"Powerلُلُصّبُلُلصّبُررً ॣ ॣh ॣ ॣ冗": @"powerلُلُصّبُلُلصّبُررًॣॣH冗", | |
| 1132 | + @"#\tRight-To-Left Strings": @"rightToLeftStrings", | |
| 1133 | + @"Roses are \033[0;31mred\033[0m, violets are \033[0;34mblue. Hope you enjoy terminal hue": @"rosesAre031Mred0MVioletsAre034MblueHopeYouEnjoyTerminalHue", | |
| 1134 | + @"%*.*s": @"s", | |
| 1135 | + @"'><script>alert(123)</script>": @"scriptAlert123Script", | |
| 1136 | + @"'><script>alert(123);</script x='": @"scriptAlert123ScriptX", | |
| 1137 | + @"\"`'><script>-javascript:alert(1)</script>": @"scriptJavascriptAlert1Script", | |
| 1138 | + @"< / script >< script >alert(123)< / script >": @"scriptScriptAlert123Script", | |
| 1139 | + @"<script src=\"/\\%(jscript)s\"></script>": @"scriptSrcJscriptSScript", | |
| 1140 | + @"\"`'><script>\\x0Ajavascript:alert(1)</script>": @"scriptX0AjavascriptAlert1Script", | |
| 1141 | + @"\"`'><script>\\x0Bjavascript:alert(1)</script>": @"scriptX0BjavascriptAlert1Script", | |
| 1142 | + @"<script\\x0Ctype=\"text/javascript\">javascript:alert(1);</script>": @"scriptX0CtypeTextJavascriptJavascriptAlert1Script", | |
| 1143 | + @"\"`'><script>\\x20javascript:alert(1)</script>": @"scriptX20JavascriptAlert1Script", | |
| 1144 | + @"\"`'><script>\\x2Bjavascript:alert(1)</script>": @"scriptX2BjavascriptAlert1Script", | |
| 1145 | + @"<script\\x2Ftype=\"text/javascript\">javascript:alert(1);</script>": @"scriptX2FtypeTextJavascriptJavascriptAlert1Script", | |
| 1146 | + @"\"`'><script>\\x7Ejavascript:alert(1)</script>": @"scriptX7EjavascriptAlert1Script", | |
| 1147 | + @"\"`'><script>\\xE2\\x80\\x80javascript:alert(1)</script>": @"scriptXE2X80X80JavascriptAlert1Script", | |
| 1148 | + @"\"`'><script>\\xE2\\x80\\x82javascript:alert(1)</script>": @"scriptXE2X80X82JavascriptAlert1Script", | |
| 1149 | + @"\"`'><script>\\xE2\\x80\\x83javascript:alert(1)</script>": @"scriptXE2X80X83JavascriptAlert1Script", | |
| 1150 | + @"\"`'><script>\\xE2\\x80\\x84javascript:alert(1)</script>": @"scriptXE2X80X84JavascriptAlert1Script", | |
| 1151 | + @"\"`'><script>\\xE2\\x80\\x88javascript:alert(1)</script>": @"scriptXE2X80X88JavascriptAlert1Script", | |
| 1152 | + @"\"`'><script>\\xE2\\x80\\x8Bjavascript:alert(1)</script>": @"scriptXE2X80X8BjavascriptAlert1Script", | |
| 1153 | + @"\"`'><script>\\xEF\\xBF\\xAEjavascript:alert(1)</script>": @"scriptXEFXBFXAEjavascriptAlert1Script", | |
| 1154 | + @"\"`'><script>\\xEF\\xBF\\xBEjavascript:alert(1)</script>": @"scriptXEFXBFXBEjavascriptAlert1Script", | |
| 1155 | + @"Scunthorpe General Hospital": @"scunthorpeGeneralHospital", | |
| 1156 | + @"#\tServer Code Injection": @"serverCodeInjection", | |
| 1157 | + @"shitake mushrooms": @"shitakeMushrooms", | |
| 1158 | + @"''": @"some", | |
| 1159 | + @"0/0": @"some00", | |
| 1160 | + @"#\tSpecial Characters": @"specialCharacters", | |
| 1161 | + @"src=JaVaSCript:prompt(132)": @"srcJaVaSCriptPrompt132", | |
| 1162 | + @"#\tStrings which can be interpreted as numeric": @"stringsWhichCanBeInterpretedAsNumeric", | |
| 1163 | + @"#\tStrings which can cause a SQL injection if inputs are not sanitized": @"stringsWhichCanCauseASQLInjectionIfInputsAreNotSanitized", | |
| 1164 | + @"#\tStrings which can cause user to pull in files that should not be a part of a web server": @"stringsWhichCanCauseUserToPullInFilesThatShouldNotBeAPartOfAWebServer", | |
| 1165 | + @"#\tStrings which can cause user to run code on server as a privileged user (c.f. https://news.ycombinator.com/item?id=7665153)": @"stringsWhichCanCauseUserToRunCodeOnServerAsAPrivilegedUserCFHTTPSNewsYcombinatorCOMItemID7665153", | |
| 1166 | + @"#\tStrings which contain \"corrupted\" text. The corruption will not appear in non-HTML text, however. (via http://www.eeemo.net)": @"stringsWhichContainCorruptedTextTheCorruptionWillNotAppearInNonHTMLTextHoweverViaHTTPWWWEeemoNet", | |
| 1167 | + @"#\tStrings which contain unicode with an \"upsidedown\" effect (via http://www.upsidedowntext.com)": @"stringsWhichContainUnicodeWithAnUpsidedownEffectViaHTTPWWWUpsidedowntextCOM", | |
| 1168 | + @"#\tStrings which contain unicode with unusual properties (e.g. Right-to-left override) (c.f. http://www.unicode.org/charts/PDF/U2000.pdf)": @"stringsWhichContainUnicodeWithUnusualPropertiesEGRightToLeftOverrideCFHTTPWWWUnicodeOrgChartsPDFU2000PDF", | |
| 1169 | + @"#\tStrings which punish the fools who use cat/type on this file": @"stringsWhichPunishTheFoolsWhoUseCatTypeOnThisFile", | |
| 1170 | + @"<svg><script>123<1>alert(123)</script>": @"svgScript1231Alert123Script", | |
| 1171 | + @"System(\"ls -al /\")": @"systemLsAl", | |
| 1172 | + @"@{[system \"touch /tmp/blns.fail\"]}": @"systemTouchTmpBlnsFail", | |
| 1173 | + @"\u2029test\u2029": @"test", | |
| 1174 | + @"test\u2060test\u202b": @"testTest", | |
| 1175 | + @"\"''''\"'\"": @"the", | |
| 1176 | + @"+0.0": @"the00", | |
| 1177 | + @"0.0.0": @"the000", | |
| 1178 | + @"() { 0; }; touch /tmp/blns.shellshock1.fail;": @"the0TouchTmpBlnsShellshock1Fail", | |
| 1179 | + @"0xabad1dea": @"the0Xabad1Dea", | |
| 1180 | + @"0xffffffff": @"the0Xffffffff", | |
| 1181 | + @"\U0001f3f30\U0001f308️": @"the0️", | |
| 1182 | + @"0️⃣ 1️⃣ 2️⃣ 3️⃣ 4️⃣ 5️⃣ 6️⃣ 7️⃣ 8️⃣ 9️⃣ \U0001f51f": @"the0️1️2️3️4️5️6️7️8️9️", | |
| 1183 | + @"--": @"the1", | |
| 1184 | + @"\U0001d683\U0001d691\U0001d68e \U0001d69a\U0001d69e\U0001d692\U0001d68c\U0001d694 \U0001d68b\U0001d69b\U0001d698\U0001d6a0\U0001d697 \U0001d68f\U0001d698\U0001d6a1 \U0001d693\U0001d69e\U0001d696\U0001d699\U0001d69c \U0001d698\U0001d69f\U0001d68e\U0001d69b \U0001d69d\U0001d691\U0001d68e \U0001d695\U0001d68a\U0001d6a3\U0001d6a2 \U0001d68d\U0001d698\U0001d690": @"the10", | |
| 1185 | + @"-$1.00": @"the100", | |
| 1186 | + @"1 000,00": @"the100000", | |
| 1187 | + @"1'000'000,00": @"the100000000", | |
| 1188 | + @"\U0001f435 \U0001f648 \U0001f649 \U0001f64a": @"the11", | |
| 1189 | + @"-1/2": @"the12", | |
| 1190 | + @"\U0001f47e \U0001f647 \U0001f481 \U0001f645 \U0001f646 \U0001f64b \U0001f64e \U0001f64d": @"the13", | |
| 1191 | + @"-1E+02": @"the1E02", | |
| 1192 | + @"-1E2": @"the1E2", | |
| 1193 | + @"-1#IND": @"the1Ind", | |
| 1194 | + @".": @"the2", | |
| 1195 | + @"\\\\": @"the3", | |
| 1196 | + @"_": @"the4", | |
| 1197 | + @"⁰⁴⁵": @"the5", | |
| 1198 | + @"⅛⅜⅝⅞": @"the6", | |
| 1199 | + @"✋\U0001f3ff \U0001f4aa\U0001f3ff \U0001f450\U0001f3ff \U0001f64c\U0001f3ff \U0001f44f\U0001f3ff \U0001f64f\U0001f3ff": @"the7", | |
| 1200 | + @"・( ̄∀ ̄)・:*:": @"the8", | |
| 1201 | + @"\U0001d413\U0001d421\U0001d41e \U0001d42a\U0001d42e\U0001d422\U0001d41c\U0001d424 \U0001d41b\U0001d42b\U0001d428\U0001d430\U0001d427 \U0001d41f\U0001d428\U0001d431 \U0001d423\U0001d42e\U0001d426\U0001d429\U0001d42c \U0001d428\U0001d42f\U0001d41e\U0001d42b \U0001d42d\U0001d421\U0001d41e \U0001d425\U0001d41a\U0001d433\U0001d432 \U0001d41d\U0001d428\U0001d420": @"the9", | |
| 1202 | + @"-9223372036854775808/-1": @"the92233720368547758081", | |
| 1203 | + @"<script>alert(123)</script>": @"theScriptAlert123Script", | |
| 1204 | + @"١٢٣": @"the١٢٣", | |
| 1205 | + @"<title onpropertychange=javascript:alert(1)></title><title title=>": @"titleOnpropertychangeJavascriptAlert1TitleTitleTitle", | |
| 1206 | + @"# treated as whitespace in some contexts.": @"treatedAsWhitespaceInSomeContexts", | |
| 1207 | + @"#\tTrick Unicode": @"trickUnicode", | |
| 1208 | + @"undefined": @"undefined", | |
| 1209 | + @"# Unicode additional control characters: all of the characters with": @"unicodeAdditionalControlCharactersAllOfTheCharactersWith", | |
| 1210 | + @"#\tUnicode Subscript/Superscript/Accents": @"unicodeSubscriptSuperscriptAccents", | |
| 1211 | + @"#\tUnicode Upsidedown": @"unicodeUpsidedown", | |
| 1212 | + @"$USER": @"user", | |
| 1213 | + @"--version": @"version", | |
| 1214 | + @"# version 8.0.0), plus U+0009 (HT), U+000B (VT), U+000C (FF), U+0085 (NEL),": @"version800PlusU0009HTU000BVTU000CFFU0085NEL", | |
| 1215 | + @"# Whitespace: all of the characters with category Zs, Zl, or Zp (in Unicode": @"whitespaceAllOfTheCharactersWithCategoryZsZlOrZpInUnicode", | |
| 1216 | + @"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><!DOCTYPE foo [ <!ELEMENT foo ANY ><!ENTITY xxe SYSTEM \"file:///etc/passwd\" >]><foo>&xxe;</foo>": @"xmlVersion10EncodingISO88591DOCTYPEFooELEMENTFooANYENTITYXxeSYSTEMFileEtcPasswdFooXxeFoo", | |
| 1217 | + @"# XXE Injection (XML)": @"xxeInjectionXML", | |
| 1218 | + @"#\tZalgo Text": @"zalgoText", | |
| 1219 | + @"ZZ:": @"zz", | |
| 1220 | + @"ÅÍÎÏ˝ÓÔ\uf8ffÒÚÆ☃": @"åíîïÓôÒúæ", | |
| 1221 | + @",。・:*:・゜’( ☻ ω ☻ )。・:*:・゜’": @"ω", | |
| 1222 | + @"ЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя": @"ёђѓєѕіїјљњћќѝўџабвгдежзийклмнопрстуфхцчшщъыьэюЯабвгдежзийклмнопрстуфхцчшщъыьэюя", | |
| 1223 | + @"בְּרֵאשִׁית, בָּרָא אֱלֹהִים, אֵת הַשָּׁמַיִם, וְאֵת הָאָרֶץ": @"בְּרֵאשִׁיתבָּרָאאֱלֹהִיםאֵתהַשָּׁמַיִםוְאֵתהָאָרֶץ", | |
| 1224 | + @"مُنَاقَشَةُ سُبُلِ اِسْتِخْدَامِ اللُّغَةِ فِي النُّظُمِ الْقَائِمَةِ وَفِيم يَخُصَّ التَّطْبِيقَاتُ الْحاسُوبِيَّةُ، ": @"مُنَاقَشَةُسُبُلِاِسْتِخْدَامِاللُّغَةِفِيالنُّظُمِالْقَائِمَةِوَفِيميَخُصَّالتَّطْبِيقَاتُالْحاسُوبِيَّةُ", | |
| 1225 | + @"̗̺͖̹̯͓Ṯ̤͍̥͇͈h̲́e͏͓̼̗̙̼̣͔ ͇̜̱̠͓͍ͅN͕͠e̗̱z̘̝̜̺͙p̤̺̹͍̯͚e̠̻̠͜r̨̤͍̺̖͔̖̖d̠̟̭̬̝͟i̦͖̩͓͔̤a̠̗̬͉̙n͚͜ ̻̞̰͚ͅh̵͉i̳̞v̢͇ḙ͎͟-҉̭̩̼͔m̤̭̫i͕͇̝̦n̗͙ḍ̟ ̯̲͕͞ǫ̟̯̰̲͙̻̝f ̪̰̰̗̖̭̘͘c̦͍̲̞͍̩̙ḥ͚a̮͎̟̙͜ơ̩̹͎s̤.̝̝ ҉Z̡̖̜͖̰̣͉̜a͖̰͙̬͡l̲̫̳͍̩g̡̟̼̱͚̞̬ͅo̗͜.̟": @"ṯHENEZPERDIANHIVḘMINḌǪFCḤAƠSZALGO", | |
| 1226 | + @"┬─┬ノ( º _ ºノ)": @"ノº_ºノ", | |
| 1227 | + @"울란바토르": @"울란바토르", | |
| 1228 | + @"The quick brown fox jumps over the lazy dog": @"theQuickBrownFoxJumpsOverTheLazyDog", | |
| 1229 | + @"(ノಥ益ಥ)ノ\ufeff ┻━┻": @"ノಥ益ಥノ", | |
| 1230 | + }; | |
| 1231 | +} | |
| 1232 | + | |
| 1233 | ++ (instancetype)fromJSONDictionary:(NSDictionary *)dict | |
| 1234 | +{ | |
| 1235 | + return [dict isKindOfClass:NSDictionary.class] ? [[QTC alloc] initWithJSONDictionary:dict] : nil; | |
| 1236 | +} | |
| 1237 | + | |
| 1238 | +- (instancetype)initWithJSONDictionary:(NSDictionary *)dict | |
| 1239 | +{ | |
| 1240 | + if (self = [super init]) { | |
| 1241 | + if (![dict[@"\U0002070e\U00020731\U00020779\U00020c53\U00020c78\U00020c96\U00020ccf"] isKindOfClass:NSString.class]) return nil; | |
| 1242 | + if (![dict[@"A:"] isKindOfClass:NSString.class]) return nil; | |
| 1243 | + if (![dict[@"<a href=\"\\x00javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1244 | + if (![dict[@"<a href=\"\\x03javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1245 | + if (![dict[@"<a href=\"\\x06javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1246 | + if (![dict[@"<a href=\"\\x07javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1247 | + if (![dict[@"<a href=\"\\x0Bjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1248 | + if (![dict[@"<a href=\"\\x12javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1249 | + if (![dict[@"<a href=\"\\x14javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1250 | + if (![dict[@"<a href=\"\\x15javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1251 | + if (![dict[@"<a href=\"\\x18javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1252 | + if (![dict[@"<a href=\"\\x1Bjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1253 | + if (![dict[@"<a href=\"\\x1Cjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1254 | + if (![dict[@"<a href=\"\\x20javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1255 | + if (![dict[@"<a href=\"\\xE2\\x80\\x80javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1256 | + if (![dict[@"<a href=\"\\xE2\\x80\\x85javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1257 | + if (![dict[@"<a href=\"\\xE2\\x80\\x88javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1258 | + if (![dict[@"<a href=\"\\xE2\\x80\\x89javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1259 | + if (![dict[@"<a href=\"\\xE2\\x80\\x8Ajavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1260 | + if (![dict[@"<a href=\"\\xE2\\x81\\x9Fjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1261 | + if (![dict[@"<a href=\"\\xE3\\x80\\x80javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1262 | + if (![dict[@"ABC<div style=\"x:expression\\x00(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 1263 | + if (![dict[@"ABC<div style=\"x:\\x00expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 1264 | + if (![dict[@"ABC<div style=\"x:\\x0Cexpression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 1265 | + if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x81expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 1266 | + if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x86expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 1267 | + if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x88expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 1268 | + if (![dict[@"ABC<div style=\"x:\\xE3\\x80\\x80expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 1269 | + if (![dict[@"ABC<div style=\"x:\\xEF\\xBB\\xBFexpression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 1270 | + if (![dict[@"# and U+007F (DEL)"] isKindOfClass:NSString.class]) return nil; | |
| 1271 | + if (![dict[@"-"] isKindOfClass:NSString.class]) return nil; | |
| 1272 | + if (![dict[@"# ASCII punctuation. All of these characters may need to be escaped in some"] isKindOfClass:NSString.class]) return nil; | |
| 1273 | + if (![dict[@"<BODY onload!#$%&()*~+-_.,:;?@[/|\\]^`=alert(\"XSS\")>"] isKindOfClass:NSString.class]) return nil; | |
| 1274 | + if (![dict[@"\"'\"'\"''''\""] isKindOfClass:NSString.class]) return nil; | |
| 1275 | + if (![dict[@"-0.0"] isKindOfClass:NSString.class]) return nil; | |
| 1276 | + if (![dict[@"0.0/0"] isKindOfClass:NSString.class]) return nil; | |
| 1277 | + if (![dict[@"--1"] isKindOfClass:NSString.class]) return nil; | |
| 1278 | + if (![dict[@"-1.00"] isKindOfClass:NSString.class]) return nil; | |
| 1279 | + if (![dict[@"1,000.00"] isKindOfClass:NSString.class]) return nil; | |
| 1280 | + if (![dict[@"1,000,000.00"] isKindOfClass:NSString.class]) return nil; | |
| 1281 | + if (![dict[@"1E+02"] isKindOfClass:NSString.class]) return nil; | |
| 1282 | + if (![dict[@"><script>alert(123)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1283 | + if (![dict[@"true"] isKindOfClass:NSString.class]) return nil; | |
| 1284 | + if (![dict[@"CLOCK$"] isKindOfClass:NSString.class]) return nil; | |
| 1285 | + if (![dict[@"COM2"] isKindOfClass:NSString.class]) return nil; | |
| 1286 | + if (![dict[@"COM4"] isKindOfClass:NSString.class]) return nil; | |
| 1287 | + if (![dict[@"Craig Cockburn, Software Specialist"] isKindOfClass:NSString.class]) return nil; | |
| 1288 | + if (![dict[@"DCC SEND STARTKEYLOGGER 0 0 0"] isKindOfClass:NSString.class]) return nil; | |
| 1289 | + if (![dict[@"#\tEmoji"] isKindOfClass:NSString.class]) return nil; | |
| 1290 | + if (![dict[@"\"\""] isKindOfClass:NSString.class]) return nil; | |
| 1291 | + if (![dict[@"evaluate"] isKindOfClass:NSString.class]) return nil; | |
| 1292 | + if (![dict[@"<foo val=“bar” />"] isKindOfClass:NSString.class]) return nil; | |
| 1293 | + if (![dict[@"hasOwnProperty"] isKindOfClass:NSString.class]) return nil; | |
| 1294 | + if (![dict[@"Horniman Museum"] isKindOfClass:NSString.class]) return nil; | |
| 1295 | + if (![dict[@"http://www.cum.qc.ca/"] isKindOfClass:NSString.class]) return nil; | |
| 1296 | + if (![dict[@"<i onwheel=alert(1)> Scroll over me </i>"] isKindOfClass:NSString.class]) return nil; | |
| 1297 | + if (![dict[@"<img[a][b][c]src[d]=x[e]onerror=[f]\"alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 1298 | + if (![dict[@"<IMG onmouseover=\"alert('xxs')\">"] isKindOfClass:NSString.class]) return nil; | |
| 1299 | + if (![dict[@"<IMG \"\"\"><SCRIPT>alert(\"XSS\")</SCRIPT>\">"] isKindOfClass:NSString.class]) return nil; | |
| 1300 | + if (![dict[@"<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>"] isKindOfClass:NSString.class]) return nil; | |
| 1301 | + if (![dict[@"<IMG SRC=\"javascript:alert('XSS')\""] isKindOfClass:NSString.class]) return nil; | |
| 1302 | + if (![dict[@"<img src onerror /\" '\"= alt=javascript:alert(1)//\">"] isKindOfClass:NSString.class]) return nil; | |
| 1303 | + if (![dict[@"<img src\\x10=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 1304 | + if (![dict[@"<img src\\x12=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 1305 | + if (![dict[@"<img src\\x13=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 1306 | + if (![dict[@"<img src\\x32=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 1307 | + if (![dict[@"<img src\\x47=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 1308 | + if (![dict[@"<img src=x onerror=alert(123) />"] isKindOfClass:NSString.class]) return nil; | |
| 1309 | + if (![dict[@"<img src=x onerror=\\x10\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 1310 | + if (![dict[@"<img src=x onerror=\\x32\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 1311 | + if (![dict[@"<img src=\"x` `<script>javascript:alert(1)</script>\"` `>"] isKindOfClass:NSString.class]) return nil; | |
| 1312 | + if (![dict[@"`\"'><img src=xxx:x \\x09onerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil; | |
| 1313 | + if (![dict[@"`\"'><img src=xxx:x \\x20onerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil; | |
| 1314 | + if (![dict[@"`\"'><img src=xxx:x \\x22onerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil; | |
| 1315 | + if (![dict[@"`\"'><img src=xxx:x \\x27onerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil; | |
| 1316 | + if (![dict[@"<img\\x11src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 1317 | + if (![dict[@"<img \\x34src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 1318 | + if (![dict[@"<img\\x47src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 1319 | + if (![dict[@"Infinity"] isKindOfClass:NSString.class]) return nil; | |
| 1320 | + if (![dict[@"dontMakeAMap"] isKindOfClass:NSNumber.class]) return nil; | |
| 1321 | + if (![dict[@"JavaSCript:alert(123)"] isKindOfClass:NSString.class]) return nil; | |
| 1322 | + if (![dict[@"LPT1"] isKindOfClass:NSString.class]) return nil; | |
| 1323 | + if (![dict[@"<script>alert('123');</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1324 | + if (![dict[@"magna cum laude"] isKindOfClass:NSString.class]) return nil; | |
| 1325 | + if (![dict[@"medieval erection of parapets"] isKindOfClass:NSString.class]) return nil; | |
| 1326 | + if (![dict[@"mocha"] isKindOfClass:NSString.class]) return nil; | |
| 1327 | + if (![dict[@"NaN"] isKindOfClass:NSString.class]) return nil; | |
| 1328 | + if (![dict[@"# Non-whitespace C0 controls: U+0001 through U+0008, U+000E through U+001F,"] isKindOfClass:NSString.class]) return nil; | |
| 1329 | + if (![dict[@"NULL"] isKindOfClass:NSString.class]) return nil; | |
| 1330 | + if (![dict[@"%"] isKindOfClass:NSString.class]) return nil; | |
| 1331 | + if (![dict[@"0,,0"] isKindOfClass:NSString.class]) return nil; | |
| 1332 | + if (![dict[@"1.000,00"] isKindOfClass:NSString.class]) return nil; | |
| 1333 | + if (![dict[@"1.000.000,00"] isKindOfClass:NSString.class]) return nil; | |
| 1334 | + if (![dict[@"' onfocus=JaVaSCript:alert(123) autofocus"] isKindOfClass:NSString.class]) return nil; | |
| 1335 | + if (![dict[@"# or reused for internal delimiters on the theory that they should never"] isKindOfClass:NSString.class]) return nil; | |
| 1336 | + if (![dict[@"<plaintext>"] isKindOfClass:NSString.class]) return nil; | |
| 1337 | + if (![dict[@"Powerلُلُصّبُلُلصّبُررً ॣ ॣh ॣ ॣ冗"] isKindOfClass:NSString.class]) return nil; | |
| 1338 | + if (![dict[@"#\tRight-To-Left Strings"] isKindOfClass:NSString.class]) return nil; | |
| 1339 | + if (![dict[@"Roses are \033[0;31mred\033[0m, violets are \033[0;34mblue. Hope you enjoy terminal hue"] isKindOfClass:NSString.class]) return nil; | |
| 1340 | + if (![dict[@"%*.*s"] isKindOfClass:NSString.class]) return nil; | |
| 1341 | + if (![dict[@"'><script>alert(123)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1342 | + if (![dict[@"'><script>alert(123);</script x='"] isKindOfClass:NSString.class]) return nil; | |
| 1343 | + if (![dict[@"\"`'><script>-javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1344 | + if (![dict[@"< / script >< script >alert(123)< / script >"] isKindOfClass:NSString.class]) return nil; | |
| 1345 | + if (![dict[@"<script src=\"/\\%(jscript)s\"></script>"] isKindOfClass:NSString.class]) return nil; | |
| 1346 | + if (![dict[@"\"`'><script>\\x0Ajavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1347 | + if (![dict[@"\"`'><script>\\x0Bjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1348 | + if (![dict[@"<script\\x0Ctype=\"text/javascript\">javascript:alert(1);</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1349 | + if (![dict[@"\"`'><script>\\x20javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1350 | + if (![dict[@"\"`'><script>\\x2Bjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1351 | + if (![dict[@"<script\\x2Ftype=\"text/javascript\">javascript:alert(1);</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1352 | + if (![dict[@"\"`'><script>\\x7Ejavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1353 | + if (![dict[@"\"`'><script>\\xE2\\x80\\x80javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1354 | + if (![dict[@"\"`'><script>\\xE2\\x80\\x82javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1355 | + if (![dict[@"\"`'><script>\\xE2\\x80\\x83javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1356 | + if (![dict[@"\"`'><script>\\xE2\\x80\\x84javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1357 | + if (![dict[@"\"`'><script>\\xE2\\x80\\x88javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1358 | + if (![dict[@"\"`'><script>\\xE2\\x80\\x8Bjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1359 | + if (![dict[@"\"`'><script>\\xEF\\xBF\\xAEjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1360 | + if (![dict[@"\"`'><script>\\xEF\\xBF\\xBEjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1361 | + if (![dict[@"Scunthorpe General Hospital"] isKindOfClass:NSString.class]) return nil; | |
| 1362 | + if (![dict[@"#\tServer Code Injection"] isKindOfClass:NSString.class]) return nil; | |
| 1363 | + if (![dict[@"shitake mushrooms"] isKindOfClass:NSString.class]) return nil; | |
| 1364 | + if (![dict[@"''"] isKindOfClass:NSString.class]) return nil; | |
| 1365 | + if (![dict[@"0/0"] isKindOfClass:NSString.class]) return nil; | |
| 1366 | + if (![dict[@"#\tSpecial Characters"] isKindOfClass:NSString.class]) return nil; | |
| 1367 | + if (![dict[@"src=JaVaSCript:prompt(132)"] isKindOfClass:NSString.class]) return nil; | |
| 1368 | + if (![dict[@"#\tStrings which can be interpreted as numeric"] isKindOfClass:NSString.class]) return nil; | |
| 1369 | + if (![dict[@"#\tStrings which can cause a SQL injection if inputs are not sanitized"] isKindOfClass:NSString.class]) return nil; | |
| 1370 | + if (![dict[@"#\tStrings which can cause user to pull in files that should not be a part of a web server"] isKindOfClass:NSString.class]) return nil; | |
| 1371 | + if (![dict[@"#\tStrings which can cause user to run code on server as a privileged user (c.f. https://news.ycombinator.com/item?id=7665153)"] isKindOfClass:NSString.class]) return nil; | |
| 1372 | + if (![dict[@"#\tStrings which contain \"corrupted\" text. The corruption will not appear in non-HTML text, however. (via http://www.eeemo.net)"] isKindOfClass:NSString.class]) return nil; | |
| 1373 | + if (![dict[@"#\tStrings which contain unicode with an \"upsidedown\" effect (via http://www.upsidedowntext.com)"] isKindOfClass:NSString.class]) return nil; | |
| 1374 | + if (![dict[@"#\tStrings which contain unicode with unusual properties (e.g. Right-to-left override) (c.f. http://www.unicode.org/charts/PDF/U2000.pdf)"] isKindOfClass:NSString.class]) return nil; | |
| 1375 | + if (![dict[@"#\tStrings which punish the fools who use cat/type on this file"] isKindOfClass:NSString.class]) return nil; | |
| 1376 | + if (![dict[@"<svg><script>123<1>alert(123)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1377 | + if (![dict[@"System(\"ls -al /\")"] isKindOfClass:NSString.class]) return nil; | |
| 1378 | + if (![dict[@"@{[system \"touch /tmp/blns.fail\"]}"] isKindOfClass:NSString.class]) return nil; | |
| 1379 | + if (![dict[@"\u2029test\u2029"] isKindOfClass:NSString.class]) return nil; | |
| 1380 | + if (![dict[@"test\u2060test\u202b"] isKindOfClass:NSString.class]) return nil; | |
| 1381 | + if (![dict[@"\"''''\"'\""] isKindOfClass:NSString.class]) return nil; | |
| 1382 | + if (![dict[@"+0.0"] isKindOfClass:NSString.class]) return nil; | |
| 1383 | + if (![dict[@"0.0.0"] isKindOfClass:NSString.class]) return nil; | |
| 1384 | + if (![dict[@"() { 0; }; touch /tmp/blns.shellshock1.fail;"] isKindOfClass:NSString.class]) return nil; | |
| 1385 | + if (![dict[@"0xabad1dea"] isKindOfClass:NSString.class]) return nil; | |
| 1386 | + if (![dict[@"0xffffffff"] isKindOfClass:NSString.class]) return nil; | |
| 1387 | + if (![dict[@"\U0001f3f30\U0001f308️"] isKindOfClass:NSString.class]) return nil; | |
| 1388 | + if (![dict[@"0️⃣ 1️⃣ 2️⃣ 3️⃣ 4️⃣ 5️⃣ 6️⃣ 7️⃣ 8️⃣ 9️⃣ \U0001f51f"] isKindOfClass:NSString.class]) return nil; | |
| 1389 | + if (![dict[@"--"] isKindOfClass:NSString.class]) return nil; | |
| 1390 | + if (![dict[@"\U0001d683\U0001d691\U0001d68e \U0001d69a\U0001d69e\U0001d692\U0001d68c\U0001d694 \U0001d68b\U0001d69b\U0001d698\U0001d6a0\U0001d697 \U0001d68f\U0001d698\U0001d6a1 \U0001d693\U0001d69e\U0001d696\U0001d699\U0001d69c \U0001d698\U0001d69f\U0001d68e\U0001d69b \U0001d69d\U0001d691\U0001d68e \U0001d695\U0001d68a\U0001d6a3\U0001d6a2 \U0001d68d\U0001d698\U0001d690"] isKindOfClass:NSString.class]) return nil; | |
| 1391 | + if (![dict[@"-$1.00"] isKindOfClass:NSString.class]) return nil; | |
| 1392 | + if (![dict[@"1 000,00"] isKindOfClass:NSString.class]) return nil; | |
| 1393 | + if (![dict[@"1'000'000,00"] isKindOfClass:NSString.class]) return nil; | |
| 1394 | + if (![dict[@"\U0001f435 \U0001f648 \U0001f649 \U0001f64a"] isKindOfClass:NSString.class]) return nil; | |
| 1395 | + if (![dict[@"-1/2"] isKindOfClass:NSString.class]) return nil; | |
| 1396 | + if (![dict[@"\U0001f47e \U0001f647 \U0001f481 \U0001f645 \U0001f646 \U0001f64b \U0001f64e \U0001f64d"] isKindOfClass:NSString.class]) return nil; | |
| 1397 | + if (![dict[@"-1E+02"] isKindOfClass:NSString.class]) return nil; | |
| 1398 | + if (![dict[@"-1E2"] isKindOfClass:NSString.class]) return nil; | |
| 1399 | + if (![dict[@"-1#IND"] isKindOfClass:NSString.class]) return nil; | |
| 1400 | + if (![dict[@"."] isKindOfClass:NSString.class]) return nil; | |
| 1401 | + if (![dict[@"\\\\"] isKindOfClass:NSString.class]) return nil; | |
| 1402 | + if (![dict[@"_"] isKindOfClass:NSString.class]) return nil; | |
| 1403 | + if (![dict[@"⁰⁴⁵"] isKindOfClass:NSString.class]) return nil; | |
| 1404 | + if (![dict[@"⅛⅜⅝⅞"] isKindOfClass:NSString.class]) return nil; | |
| 1405 | + if (![dict[@"✋\U0001f3ff \U0001f4aa\U0001f3ff \U0001f450\U0001f3ff \U0001f64c\U0001f3ff \U0001f44f\U0001f3ff \U0001f64f\U0001f3ff"] isKindOfClass:NSString.class]) return nil; | |
| 1406 | + if (![dict[@"・( ̄∀ ̄)・:*:"] isKindOfClass:NSString.class]) return nil; | |
| 1407 | + if (![dict[@"\U0001d413\U0001d421\U0001d41e \U0001d42a\U0001d42e\U0001d422\U0001d41c\U0001d424 \U0001d41b\U0001d42b\U0001d428\U0001d430\U0001d427 \U0001d41f\U0001d428\U0001d431 \U0001d423\U0001d42e\U0001d426\U0001d429\U0001d42c \U0001d428\U0001d42f\U0001d41e\U0001d42b \U0001d42d\U0001d421\U0001d41e \U0001d425\U0001d41a\U0001d433\U0001d432 \U0001d41d\U0001d428\U0001d420"] isKindOfClass:NSString.class]) return nil; | |
| 1408 | + if (![dict[@"-9223372036854775808/-1"] isKindOfClass:NSString.class]) return nil; | |
| 1409 | + if (![dict[@"<script>alert(123)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1410 | + if (![dict[@"١٢٣"] isKindOfClass:NSString.class]) return nil; | |
| 1411 | + if (![dict[@"<title onpropertychange=javascript:alert(1)></title><title title=>"] isKindOfClass:NSString.class]) return nil; | |
| 1412 | + if (![dict[@"# treated as whitespace in some contexts."] isKindOfClass:NSString.class]) return nil; | |
| 1413 | + if (![dict[@"#\tTrick Unicode"] isKindOfClass:NSString.class]) return nil; | |
| 1414 | + if (![dict[@"undefined"] isKindOfClass:NSString.class]) return nil; | |
| 1415 | + if (![dict[@"# Unicode additional control characters: all of the characters with"] isKindOfClass:NSString.class]) return nil; | |
| 1416 | + if (![dict[@"#\tUnicode Subscript/Superscript/Accents"] isKindOfClass:NSString.class]) return nil; | |
| 1417 | + if (![dict[@"#\tUnicode Upsidedown"] isKindOfClass:NSString.class]) return nil; | |
| 1418 | + if (![dict[@"$USER"] isKindOfClass:NSString.class]) return nil; | |
| 1419 | + if (![dict[@"--version"] isKindOfClass:NSString.class]) return nil; | |
| 1420 | + if (![dict[@"# version 8.0.0), plus U+0009 (HT), U+000B (VT), U+000C (FF), U+0085 (NEL),"] isKindOfClass:NSString.class]) return nil; | |
| 1421 | + if (![dict[@"# Whitespace: all of the characters with category Zs, Zl, or Zp (in Unicode"] isKindOfClass:NSString.class]) return nil; | |
| 1422 | + if (![dict[@"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><!DOCTYPE foo [ <!ELEMENT foo ANY ><!ENTITY xxe SYSTEM \"file:///etc/passwd\" >]><foo>&xxe;</foo>"] isKindOfClass:NSString.class]) return nil; | |
| 1423 | + if (![dict[@"# XXE Injection (XML)"] isKindOfClass:NSString.class]) return nil; | |
| 1424 | + if (![dict[@"#\tZalgo Text"] isKindOfClass:NSString.class]) return nil; | |
| 1425 | + if (![dict[@"ZZ:"] isKindOfClass:NSString.class]) return nil; | |
| 1426 | + if (![dict[@"ÅÍÎÏ˝ÓÔ\uf8ffÒÚÆ☃"] isKindOfClass:NSString.class]) return nil; | |
| 1427 | + if (![dict[@",。・:*:・゜’( ☻ ω ☻ )。・:*:・゜’"] isKindOfClass:NSString.class]) return nil; | |
| 1428 | + if (![dict[@"ЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"] isKindOfClass:NSString.class]) return nil; | |
| 1429 | + if (![dict[@"בְּרֵאשִׁית, בָּרָא אֱלֹהִים, אֵת הַשָּׁמַיִם, וְאֵת הָאָרֶץ"] isKindOfClass:NSString.class]) return nil; | |
| 1430 | + if (![dict[@"مُنَاقَشَةُ سُبُلِ اِسْتِخْدَامِ اللُّغَةِ فِي النُّظُمِ الْقَائِمَةِ وَفِيم يَخُصَّ التَّطْبِيقَاتُ الْحاسُوبِيَّةُ، "] isKindOfClass:NSString.class]) return nil; | |
| 1431 | + if (![dict[@"̗̺͖̹̯͓Ṯ̤͍̥͇͈h̲́e͏͓̼̗̙̼̣͔ ͇̜̱̠͓͍ͅN͕͠e̗̱z̘̝̜̺͙p̤̺̹͍̯͚e̠̻̠͜r̨̤͍̺̖͔̖̖d̠̟̭̬̝͟i̦͖̩͓͔̤a̠̗̬͉̙n͚͜ ̻̞̰͚ͅh̵͉i̳̞v̢͇ḙ͎͟-҉̭̩̼͔m̤̭̫i͕͇̝̦n̗͙ḍ̟ ̯̲͕͞ǫ̟̯̰̲͙̻̝f ̪̰̰̗̖̭̘͘c̦͍̲̞͍̩̙ḥ͚a̮͎̟̙͜ơ̩̹͎s̤.̝̝ ҉Z̡̖̜͖̰̣͉̜a͖̰͙̬͡l̲̫̳͍̩g̡̟̼̱͚̞̬ͅo̗͜.̟"] isKindOfClass:NSString.class]) return nil; | |
| 1432 | + if (![dict[@"┬─┬ノ( º _ ºノ)"] isKindOfClass:NSString.class]) return nil; | |
| 1433 | + if (![dict[@"울란바토르"] isKindOfClass:NSString.class]) return nil; | |
| 1434 | + if (![dict[@"The quick brown fox jumps over the lazy dog"] isKindOfClass:NSString.class]) return nil; | |
| 1435 | + if (![dict[@"(ノಥ益ಥ)ノ\ufeff ┻━┻"] isKindOfClass:NSString.class]) return nil; | |
| 1436 | + [self setValuesForKeysWithDictionary:dict]; | |
| 1437 | + } | |
| 1438 | + return self; | |
| 1439 | +} | |
| 1440 | + | |
| 1441 | +- (void)setValue:(nullable id)value forKey:(NSString *)key | |
| 1442 | +{ | |
| 1443 | + id resolved = QTC.properties[key]; | |
| 1444 | + if (resolved) [super setValue:value forKey:resolved]; | |
| 1445 | +} | |
| 1446 | + | |
| 1447 | +- (void)setNilValueForKey:(NSString *)key | |
| 1448 | +{ | |
| 1449 | + id resolved = QTC.properties[key]; | |
| 1450 | + if (resolved) [super setValue:@(0) forKey:resolved]; | |
| 1451 | +} | |
| 1452 | + | |
| 1453 | +- (NSDictionary *)JSONDictionary | |
| 1454 | +{ | |
| 1455 | + id dict = [[self dictionaryWithValuesForKeys:QTC.properties.allValues] mutableCopy]; | |
| 1456 | + | |
| 1457 | + for (id jsonName in QTC.properties) { | |
| 1458 | + id propertyName = QTC.properties[jsonName]; | |
| 1459 | + if (![jsonName isEqualToString:propertyName]) { | |
| 1460 | + dict[jsonName] = dict[propertyName]; | |
| 1461 | + [dict removeObjectForKey:propertyName]; | |
| 1462 | + } | |
| 1463 | + } | |
| 1464 | + | |
| 1465 | + [dict addEntriesFromDictionary:@{ | |
| 1466 | + @"dontMakeAMap": _isDontMakeAMap ? @YES : @NO, | |
| 1467 | + }]; | |
| 1468 | + | |
| 1469 | + return dict; | |
| 1470 | +} | |
| 1471 | +@end | |
| 1472 | + | |
| 1473 | +NS_ASSUME_NONNULL_END |
Test case
1 generated file · +49 −7test/inputs/json/priority/bug427.json
Melixirdefault / QuickType.ex+49 −7
| @@ -1719,6 +1719,12 @@ defmodule ExtendedBy do | ||
| 1719 | 1719 | type_arguments: [ExtendedBy.t()] | nil |
| 1720 | 1720 | } |
| 1721 | 1721 | |
| 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 | + | |
| 1722 | 1728 | def decode_name(value) when is_binary(value), do: value |
| 1723 | 1729 | def decode_name(_), do: {:error, "Unexpected type when decoding ExtendedBy.name"} |
| 1724 | 1730 | |
| @@ -1728,7 +1734,7 @@ defmodule ExtendedBy do | ||
| 1728 | 1734 | def from_map(m) do |
| 1729 | 1735 | %ExtendedBy{ |
| 1730 | 1736 | constraint: m["constraint"] && ExtendedBy.from_map(m["constraint"]), |
| 1731 | - id: m["id"], | |
| 1737 | + id: m["id"] && decode_id(m["id"]), | |
| 1732 | 1738 | name: decode_name(m["name"]), |
| 1733 | 1739 | type: TypeEnum.decode(m["type"]), |
| 1734 | 1740 | type_arguments: m["typeArguments"] && Enum.map(m["typeArguments"], &ExtendedBy.from_map/1), |
| @@ -1808,6 +1814,12 @@ defmodule Type4 do | ||
| 1808 | 1814 | type_arguments: [ElementType.t()] | nil |
| 1809 | 1815 | } |
| 1810 | 1816 | |
| 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 | + | |
| 1811 | 1823 | def decode_name(value) when is_binary(value), do: value |
| 1812 | 1824 | def decode_name(_), do: {:error, "Unexpected type when decoding Type4.name"} |
| 1813 | 1825 | |
| @@ -1820,7 +1832,7 @@ defmodule Type4 do | ||
| 1820 | 1832 | declaration: m["declaration"] && GetSignature.from_map(m["declaration"]), |
| 1821 | 1833 | element_type: m["elementType"] && ElementType.from_map(m["elementType"]), |
| 1822 | 1834 | elements: m["elements"] && Enum.map(m["elements"], &ExtendedBy.from_map/1), |
| 1823 | - id: m["id"], | |
| 1835 | + id: m["id"] && decode_id(m["id"]), | |
| 1824 | 1836 | name: m["name"] && decode_name(m["name"]), |
| 1825 | 1837 | type: TypeEnum.decode(m["type"]), |
| 1826 | 1838 | type_arguments: m["typeArguments"] && Enum.map(m["typeArguments"], &ElementType.from_map/1), |
| @@ -2598,6 +2610,12 @@ defmodule Type5 do | ||
| 2598 | 2610 | types: [TypeElement.t()] | nil |
| 2599 | 2611 | } |
| 2600 | 2612 | |
| 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 | + | |
| 2601 | 2619 | def decode_name(value) when is_binary(value), do: value |
| 2602 | 2620 | def decode_name(_), do: {:error, "Unexpected type when decoding Type5.name"} |
| 2603 | 2621 | |
| @@ -2610,7 +2628,7 @@ defmodule Type5 do | ||
| 2610 | 2628 | declaration: m["declaration"] && Declaration2.from_map(m["declaration"]), |
| 2611 | 2629 | element_type: m["elementType"] && ExtendedBy.from_map(m["elementType"]), |
| 2612 | 2630 | elements: m["elements"] && Enum.map(m["elements"], &ElementType.from_map/1), |
| 2613 | - id: m["id"], | |
| 2631 | + id: m["id"] && decode_id(m["id"]), | |
| 2614 | 2632 | name: m["name"] && decode_name(m["name"]), |
| 2615 | 2633 | type: TypeEnum.decode(m["type"]), |
| 2616 | 2634 | type_arguments: m["typeArguments"] && Enum.map(m["typeArguments"], &TypeArgument1.from_map/1), |
| @@ -3048,6 +3066,12 @@ defmodule Type8 do | ||
| 3048 | 3066 | type_arguments: [ElementType.t()] | nil |
| 3049 | 3067 | } |
| 3050 | 3068 | |
| 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 | + | |
| 3051 | 3075 | def decode_name(value) when is_binary(value), do: value |
| 3052 | 3076 | def decode_name(_), do: {:error, "Unexpected type when decoding Type8.name"} |
| 3053 | 3077 | |
| @@ -3058,7 +3082,7 @@ defmodule Type8 do | ||
| 3058 | 3082 | %Type8{ |
| 3059 | 3083 | declaration: m["declaration"] && Declaration3.from_map(m["declaration"]), |
| 3060 | 3084 | element_type: m["elementType"] && ElementType.from_map(m["elementType"]), |
| 3061 | - id: m["id"], | |
| 3085 | + id: m["id"] && decode_id(m["id"]), | |
| 3062 | 3086 | name: m["name"] && decode_name(m["name"]), |
| 3063 | 3087 | type: TypeEnum.decode(m["type"]), |
| 3064 | 3088 | type_arguments: m["typeArguments"] && Enum.map(m["typeArguments"], &ElementType.from_map/1), |
| @@ -3188,10 +3212,16 @@ defmodule Type9 do | ||
| 3188 | 3212 | type_arguments: [ElementType.t()] | nil |
| 3189 | 3213 | } |
| 3190 | 3214 | |
| 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 | + | |
| 3191 | 3221 | def from_map(m) do |
| 3192 | 3222 | %Type9{ |
| 3193 | 3223 | declaration: m["declaration"] && Declaration1.from_map(m["declaration"]), |
| 3194 | - id: m["id"], | |
| 3224 | + id: m["id"] && decode_id(m["id"]), | |
| 3195 | 3225 | name: m["name"] && Name.decode(m["name"]), |
| 3196 | 3226 | type: TypeEnum.decode(m["type"]), |
| 3197 | 3227 | type_arguments: m["typeArguments"] && Enum.map(m["typeArguments"], &ElementType.from_map/1), |
| @@ -3648,6 +3678,12 @@ defmodule Type10 do | ||
| 3648 | 3678 | value: String.t() | nil |
| 3649 | 3679 | } |
| 3650 | 3680 | |
| 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 | + | |
| 3651 | 3687 | def decode_name(value) when is_binary(value), do: value |
| 3652 | 3688 | def decode_name(_), do: {:error, "Unexpected type when decoding Type10.name"} |
| 3653 | 3689 | |
| @@ -3665,7 +3701,7 @@ defmodule Type10 do | ||
| 3665 | 3701 | declaration: m["declaration"] && Declaration4.from_map(m["declaration"]), |
| 3666 | 3702 | element_type: m["elementType"] && ElementType.from_map(m["elementType"]), |
| 3667 | 3703 | elements: m["elements"] && Enum.map(m["elements"], &ExtendedBy.from_map/1), |
| 3668 | - id: m["id"], | |
| 3704 | + id: m["id"] && decode_id(m["id"]), | |
| 3669 | 3705 | name: m["name"] && decode_name(m["name"]), |
| 3670 | 3706 | type: TypeEnum.decode(m["type"]), |
| 3671 | 3707 | type_arguments: m["typeArguments"] && Enum.map(m["typeArguments"], &TypeArgument2.from_map/1), |
| @@ -3713,6 +3749,12 @@ defmodule Type12 do | ||
| 3713 | 3749 | type: String.t() |
| 3714 | 3750 | } |
| 3715 | 3751 | |
| 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 | + | |
| 3716 | 3758 | def decode_operator(value) when is_binary(value), do: value |
| 3717 | 3759 | def decode_operator(_), do: {:error, "Unexpected type when decoding Type12.operator"} |
| 3718 | 3760 | |
| @@ -3727,7 +3769,7 @@ defmodule Type12 do | ||
| 3727 | 3769 | |
| 3728 | 3770 | def from_map(m) do |
| 3729 | 3771 | %Type12{ |
| 3730 | - id: m["id"], | |
| 3772 | + id: m["id"] && decode_id(m["id"]), | |
| 3731 | 3773 | name: m["name"] && Name.decode(m["name"]), |
| 3732 | 3774 | operator: m["operator"] && decode_operator(m["operator"]), |
| 3733 | 3775 | target: m["target"] && ElementType.from_map(m["target"]), |
Test case
1 generated file · +48 −6test/inputs/json/priority/combinations1.json
Melixirdefault / QuickType.ex+48 −6
| @@ -246,6 +246,20 @@ defmodule ChemotherapeuticClass do | ||
| 246 | 246 | unshy: nil | nil |
| 247 | 247 | } |
| 248 | 248 | |
| 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 | + | |
| 249 | 263 | def decode_disdiapason(value) when is_binary(value), do: value |
| 250 | 264 | def decode_disdiapason(_), do: {:error, "Unexpected type when decoding ChemotherapeuticClass.disdiapason"} |
| 251 | 265 | |
| @@ -257,10 +271,10 @@ defmodule ChemotherapeuticClass do | ||
| 257 | 271 | angioneurotic: m["angioneurotic"], |
| 258 | 272 | availment: m["availment"], |
| 259 | 273 | bladelet: m["bladelet"], |
| 260 | - catharticalness: m["catharticalness"], | |
| 274 | + catharticalness: m["catharticalness"] && decode_catharticalness(m["catharticalness"]), | |
| 261 | 275 | caulis: m["caulis"], |
| 262 | 276 | chalcus: m["chalcus"], |
| 263 | - chirotherium: m["Chirotherium"], | |
| 277 | + chirotherium: m["Chirotherium"] && decode_chirotherium(m["Chirotherium"]), | |
| 264 | 278 | disdiapason: m["disdiapason"] && decode_disdiapason(m["disdiapason"]), |
| 265 | 279 | enteradenological: m["enteradenological"], |
| 266 | 280 | homocerc: m["homocerc"], |
| @@ -433,6 +447,20 @@ defmodule CoadjustClass do | ||
| 433 | 447 | unchargeable: nil | nil |
| 434 | 448 | } |
| 435 | 449 | |
| 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 | + | |
| 436 | 464 | def decode_disdiapason(value) when is_binary(value), do: value |
| 437 | 465 | def decode_disdiapason(_), do: {:error, "Unexpected type when decoding CoadjustClass.disdiapason"} |
| 438 | 466 | |
| @@ -443,8 +471,8 @@ defmodule CoadjustClass do | ||
| 443 | 471 | %CoadjustClass{ |
| 444 | 472 | amidosulphonal: m["amidosulphonal"], |
| 445 | 473 | 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"]), | |
| 448 | 476 | disdiapason: m["disdiapason"] && decode_disdiapason(m["disdiapason"]), |
| 449 | 477 | ensnare: m["ensnare"], |
| 450 | 478 | homocerc: m["homocerc"], |
| @@ -2013,6 +2041,20 @@ defmodule HemocoeleClass do | ||
| 2013 | 2041 | walt: nil | nil |
| 2014 | 2042 | } |
| 2015 | 2043 | |
| 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 | + | |
| 2016 | 2058 | def decode_disdiapason(value) when is_binary(value), do: value |
| 2017 | 2059 | def decode_disdiapason(_), do: {:error, "Unexpected type when decoding HemocoeleClass.disdiapason"} |
| 2018 | 2060 | |
| @@ -2025,8 +2067,8 @@ defmodule HemocoeleClass do | ||
| 2025 | 2067 | amelification: m["amelification"], |
| 2026 | 2068 | autobiographic: m["autobiographic"], |
| 2027 | 2069 | 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"]), | |
| 2030 | 2072 | disdiapason: m["disdiapason"] && decode_disdiapason(m["disdiapason"]), |
| 2031 | 2073 | disproportionably: m["disproportionably"], |
| 2032 | 2074 | erythrite: m["erythrite"], |
Test case
1 generated file · +468 −66test/inputs/json/priority/combinations2.json
Melixirdefault / QuickType.ex+468 −66
| @@ -323,39 +323,173 @@ defmodule Amphithyron do | ||
| 323 | 323 | undecimal: integer() | nil |
| 324 | 324 | } |
| 325 | 325 | |
| 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 | + | |
| 326 | 364 | def decode_disdiapason(value) when is_binary(value), do: value |
| 327 | 365 | def decode_disdiapason(_), do: {:error, "Unexpected type when decoding Amphithyron.disdiapason"} |
| 328 | 366 | |
| 329 | 367 | def encode_disdiapason(value) when is_binary(value), do: value |
| 330 | 368 | def encode_disdiapason(_), do: {:error, "Unexpected type when encoding Amphithyron.disdiapason"} |
| 331 | 369 | |
| 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 | + | |
| 332 | 466 | def from_map(m) do |
| 333 | 467 | %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"]), | |
| 340 | 474 | 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"]), | |
| 345 | 479 | 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"]), | |
| 352 | 486 | 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"]), | |
| 359 | 493 | } |
| 360 | 494 | end |
| 361 | 495 | |
| @@ -1063,39 +1197,173 @@ defmodule DiscordiaClass do | ||
| 1063 | 1197 | wingle: integer() | nil |
| 1064 | 1198 | } |
| 1065 | 1199 | |
| 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 | + | |
| 1066 | 1238 | def decode_disdiapason(value) when is_binary(value), do: value |
| 1067 | 1239 | def decode_disdiapason(_), do: {:error, "Unexpected type when decoding DiscordiaClass.disdiapason"} |
| 1068 | 1240 | |
| 1069 | 1241 | def encode_disdiapason(value) when is_binary(value), do: value |
| 1070 | 1242 | def encode_disdiapason(_), do: {:error, "Unexpected type when encoding DiscordiaClass.disdiapason"} |
| 1071 | 1243 | |
| 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 | + | |
| 1072 | 1340 | def from_map(m) do |
| 1073 | 1341 | %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"]), | |
| 1080 | 1348 | disdiapason: m["disdiapason"] && decode_disdiapason(m["disdiapason"]), |
| 1081 | - goofer: m["goofer"], | |
| 1349 | + goofer: m["goofer"] && decode_goofer(m["goofer"]), | |
| 1082 | 1350 | 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"]), | |
| 1088 | 1356 | 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"]), | |
| 1099 | 1367 | } |
| 1100 | 1368 | end |
| 1101 | 1369 | |
| @@ -1383,39 +1651,173 @@ defmodule LaviniaClass do | ||
| 1383 | 1651 | uproute: integer() | nil |
| 1384 | 1652 | } |
| 1385 | 1653 | |
| 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 | + | |
| 1386 | 1704 | def decode_disdiapason(value) when is_binary(value), do: value |
| 1387 | 1705 | def decode_disdiapason(_), do: {:error, "Unexpected type when decoding LaviniaClass.disdiapason"} |
| 1388 | 1706 | |
| 1389 | 1707 | def encode_disdiapason(value) when is_binary(value), do: value |
| 1390 | 1708 | def encode_disdiapason(_), do: {:error, "Unexpected type when encoding LaviniaClass.disdiapason"} |
| 1391 | 1709 | |
| 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 | + | |
| 1392 | 1794 | def from_map(m) do |
| 1393 | 1795 | %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"]), | |
| 1402 | 1804 | 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"]), | |
| 1405 | 1807 | homocerc: m["homocerc"], |
| 1406 | - merrymeeting: m["merrymeeting"], | |
| 1808 | + merrymeeting: m["merrymeeting"] && decode_merrymeeting(m["merrymeeting"]), | |
| 1407 | 1809 | 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"]), | |
| 1419 | 1821 | } |
| 1420 | 1822 | end |
Test case
1 generated file · +500 −70test/inputs/json/priority/combinations3.json
Melixirdefault / QuickType.ex+500 −70
| @@ -666,39 +666,173 @@ defmodule LupusClass do | ||
| 666 | 666 | vendible: integer() | nil |
| 667 | 667 | } |
| 668 | 668 | |
| 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 | + | |
| 669 | 701 | def decode_disdiapason(value) when is_binary(value), do: value |
| 670 | 702 | def decode_disdiapason(_), do: {:error, "Unexpected type when decoding LupusClass.disdiapason"} |
| 671 | 703 | |
| 672 | 704 | def encode_disdiapason(value) when is_binary(value), do: value |
| 673 | 705 | def encode_disdiapason(_), do: {:error, "Unexpected type when encoding LupusClass.disdiapason"} |
| 674 | 706 | |
| 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 | + | |
| 675 | 809 | def from_map(m) do |
| 676 | 810 | %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"]), | |
| 682 | 816 | 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"]), | |
| 686 | 820 | 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"]), | |
| 689 | 823 | 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"]), | |
| 702 | 836 | } |
| 703 | 837 | end |
| 704 | 838 | |
| @@ -796,57 +930,191 @@ defmodule Maslin do | ||
| 796 | 930 | unjudiciously: nil | nil |
| 797 | 931 | } |
| 798 | 932 | |
| 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 | + | |
| 799 | 995 | def decode_disdiapason(value) when is_binary(value), do: value |
| 800 | 996 | def decode_disdiapason(_), do: {:error, "Unexpected type when decoding Maslin.disdiapason"} |
| 801 | 997 | |
| 802 | 998 | def encode_disdiapason(value) when is_binary(value), do: value |
| 803 | 999 | def encode_disdiapason(_), do: {:error, "Unexpected type when encoding Maslin.disdiapason"} |
| 804 | 1000 | |
| 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 | + | |
| 805 | 1073 | def from_map(m) do |
| 806 | 1074 | %Maslin{ |
| 807 | - alicant: m["Alicant"], | |
| 1075 | + alicant: m["Alicant"] && decode_alicant(m["Alicant"]), | |
| 808 | 1076 | antiatonement: m["antiatonement"], |
| 809 | - anticorrosive: m["anticorrosive"], | |
| 1077 | + anticorrosive: m["anticorrosive"] && decode_anticorrosive(m["anticorrosive"]), | |
| 810 | 1078 | aphidozer: m["aphidozer"], |
| 811 | 1079 | 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"]), | |
| 820 | 1088 | disdiapason: m["disdiapason"] && decode_disdiapason(m["disdiapason"]), |
| 821 | 1089 | edifying: m["edifying"], |
| 822 | - ethmoiditis: m["ethmoiditis"], | |
| 1090 | + ethmoiditis: m["ethmoiditis"] && decode_ethmoiditis(m["ethmoiditis"]), | |
| 823 | 1091 | 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"]), | |
| 826 | 1094 | hangfire: m["hangfire"], |
| 827 | 1095 | homocerc: m["homocerc"], |
| 828 | - lacunosity: m["lacunosity"], | |
| 1096 | + lacunosity: m["lacunosity"] && decode_lacunosity(m["lacunosity"]), | |
| 829 | 1097 | longiloquence: m["longiloquence"], |
| 830 | - mameliere: m["mameliere"], | |
| 1098 | + mameliere: m["mameliere"] && decode_mameliere(m["mameliere"]), | |
| 831 | 1099 | motherless: m["motherless"], |
| 832 | 1100 | nonbookish: m["nonbookish"], |
| 833 | 1101 | noncorrodible: m["noncorrodible"], |
| 834 | 1102 | nonsensicality: m["nonsensicality"], |
| 835 | - oafishly: m["oafishly"], | |
| 1103 | + oafishly: m["oafishly"] && decode_oafishly(m["oafishly"]), | |
| 836 | 1104 | pfund: m["pfund"], |
| 837 | 1105 | preadvisory: m["preadvisory"], |
| 838 | 1106 | 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"]), | |
| 841 | 1109 | secluded: m["secluded"], |
| 842 | 1110 | slackage: m["slackage"], |
| 843 | - sphaeridial: m["sphaeridial"], | |
| 1111 | + sphaeridial: m["sphaeridial"] && decode_sphaeridial(m["sphaeridial"]), | |
| 844 | 1112 | spondulics: m["spondulics"], |
| 845 | - subsecive: m["subsecive"], | |
| 1113 | + subsecive: m["subsecive"] && decode_subsecive(m["subsecive"]), | |
| 846 | 1114 | swellmobsman: m["swellmobsman"], |
| 847 | - trachyglossate: m["trachyglossate"], | |
| 1115 | + trachyglossate: m["trachyglossate"] && decode_trachyglossate(m["trachyglossate"]), | |
| 848 | 1116 | trialogue: m["trialogue"], |
| 849 | - unassuaged: m["unassuaged"], | |
| 1117 | + unassuaged: m["unassuaged"] && decode_unassuaged(m["unassuaged"]), | |
| 850 | 1118 | ungross: m["ungross"], |
| 851 | 1119 | unjudiciously: m["unjudiciously"], |
| 852 | 1120 | } |
| @@ -1023,6 +1291,20 @@ defmodule MonotheisticallyClass do | ||
| 1023 | 1291 | whitestone: nil | nil |
| 1024 | 1292 | } |
| 1025 | 1293 | |
| 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 | + | |
| 1026 | 1308 | def decode_disdiapason(value) when is_binary(value), do: value |
| 1027 | 1309 | def decode_disdiapason(_), do: {:error, "Unexpected type when decoding MonotheisticallyClass.disdiapason"} |
| 1028 | 1310 | |
| @@ -1032,9 +1314,9 @@ defmodule MonotheisticallyClass do | ||
| 1032 | 1314 | def from_map(m) do |
| 1033 | 1315 | %MonotheisticallyClass{ |
| 1034 | 1316 | blaspheme: m["blaspheme"], |
| 1035 | - catharticalness: m["catharticalness"], | |
| 1317 | + catharticalness: m["catharticalness"] && decode_catharticalness(m["catharticalness"]), | |
| 1036 | 1318 | celiosalpingectomy: m["celiosalpingectomy"], |
| 1037 | - chirotherium: m["Chirotherium"], | |
| 1319 | + chirotherium: m["Chirotherium"] && decode_chirotherium(m["Chirotherium"]), | |
| 1038 | 1320 | consummativeness: m["consummativeness"], |
| 1039 | 1321 | disdiapason: m["disdiapason"] && decode_disdiapason(m["disdiapason"]), |
| 1040 | 1322 | egestive: m["egestive"], |
| @@ -1630,39 +1912,173 @@ defmodule PiaculumClass do | ||
| 1630 | 1912 | zipper: integer() | nil |
| 1631 | 1913 | } |
| 1632 | 1914 | |
| 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 | + | |
| 1633 | 1959 | def decode_disdiapason(value) when is_binary(value), do: value |
| 1634 | 1960 | def decode_disdiapason(_), do: {:error, "Unexpected type when decoding PiaculumClass.disdiapason"} |
| 1635 | 1961 | |
| 1636 | 1962 | def encode_disdiapason(value) when is_binary(value), do: value |
| 1637 | 1963 | def encode_disdiapason(_), do: {:error, "Unexpected type when encoding PiaculumClass.disdiapason"} |
| 1638 | 1964 | |
| 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 | + | |
| 1639 | 2055 | def from_map(m) do |
| 1640 | 2056 | %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"]), | |
| 1648 | 2064 | 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"]), | |
| 1651 | 2067 | 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"]), | |
| 1656 | 2072 | 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"]), | |
| 1666 | 2082 | } |
| 1667 | 2083 | end |
| 1668 | 2084 | |
| @@ -1740,6 +2156,20 @@ defmodule Pneumocele do | ||
| 1740 | 2156 | visitorial: nil | nil |
| 1741 | 2157 | } |
| 1742 | 2158 | |
| 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 | + | |
| 1743 | 2173 | def decode_disdiapason(value) when is_binary(value), do: value |
| 1744 | 2174 | def decode_disdiapason(_), do: {:error, "Unexpected type when decoding Pneumocele.disdiapason"} |
| 1745 | 2175 | |
| @@ -1749,8 +2179,8 @@ defmodule Pneumocele do | ||
| 1749 | 2179 | def from_map(m) do |
| 1750 | 2180 | %Pneumocele{ |
| 1751 | 2181 | 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"]), | |
| 1754 | 2184 | cineolic: m["cineolic"], |
| 1755 | 2185 | cobbly: m["cobbly"], |
| 1756 | 2186 | conchyliferous: m["conchyliferous"], |
Test case
1 generated file · +516 −72test/inputs/json/priority/combinations4.json
Melixirdefault / QuickType.ex+516 −72
| @@ -533,6 +533,20 @@ defmodule Reimagine do | ||
| 533 | 533 | waltzlike: nil | nil |
| 534 | 534 | } |
| 535 | 535 | |
| 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 | + | |
| 536 | 550 | def decode_disdiapason(value) when is_binary(value), do: value |
| 537 | 551 | def decode_disdiapason(_), do: {:error, "Unexpected type when decoding Reimagine.disdiapason"} |
| 538 | 552 | |
| @@ -544,8 +558,8 @@ defmodule Reimagine do | ||
| 544 | 558 | adducible: m["adducible"], |
| 545 | 559 | anabolin: m["anabolin"], |
| 546 | 560 | 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"]), | |
| 549 | 563 | chrysamine: m["chrysamine"], |
| 550 | 564 | disdiapason: m["disdiapason"] && decode_disdiapason(m["disdiapason"]), |
| 551 | 565 | fluxweed: m["fluxweed"], |
| @@ -1273,6 +1287,20 @@ defmodule SaxtenClass do | ||
| 1273 | 1287 | withdrawnness: nil | nil |
| 1274 | 1288 | } |
| 1275 | 1289 | |
| 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 | + | |
| 1276 | 1304 | def decode_disdiapason(value) when is_binary(value), do: value |
| 1277 | 1305 | def decode_disdiapason(_), do: {:error, "Unexpected type when decoding SaxtenClass.disdiapason"} |
| 1278 | 1306 | |
| @@ -1283,9 +1311,9 @@ defmodule SaxtenClass do | ||
| 1283 | 1311 | %SaxtenClass{ |
| 1284 | 1312 | algarrobilla: m["algarrobilla"], |
| 1285 | 1313 | bowgrace: m["bowgrace"], |
| 1286 | - catharticalness: m["catharticalness"], | |
| 1314 | + catharticalness: m["catharticalness"] && decode_catharticalness(m["catharticalness"]), | |
| 1287 | 1315 | centaurid: m["Centaurid"], |
| 1288 | - chirotherium: m["Chirotherium"], | |
| 1316 | + chirotherium: m["Chirotherium"] && decode_chirotherium(m["Chirotherium"]), | |
| 1289 | 1317 | disdiapason: m["disdiapason"] && decode_disdiapason(m["disdiapason"]), |
| 1290 | 1318 | flix: m["flix"], |
| 1291 | 1319 | germanely: m["germanely"], |
| @@ -1803,39 +1831,173 @@ defmodule Staghunting do | ||
| 1803 | 1831 | ungirlish: integer() | nil |
| 1804 | 1832 | } |
| 1805 | 1833 | |
| 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 | + | |
| 1806 | 1860 | def decode_disdiapason(value) when is_binary(value), do: value |
| 1807 | 1861 | def decode_disdiapason(_), do: {:error, "Unexpected type when decoding Staghunting.disdiapason"} |
| 1808 | 1862 | |
| 1809 | 1863 | def encode_disdiapason(value) when is_binary(value), do: value |
| 1810 | 1864 | def encode_disdiapason(_), do: {:error, "Unexpected type when encoding Staghunting.disdiapason"} |
| 1811 | 1865 | |
| 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 | + | |
| 1812 | 1974 | def from_map(m) do |
| 1813 | 1975 | %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"]), | |
| 1818 | 1980 | 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"]), | |
| 1823 | 1985 | 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"]), | |
| 1829 | 1991 | 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"]), | |
| 1839 | 2001 | } |
| 1840 | 2002 | end |
| 1841 | 2003 | |
| @@ -1913,39 +2075,173 @@ defmodule StrenuosityClass do | ||
| 1913 | 2075 | yankeeist: integer() | nil |
| 1914 | 2076 | } |
| 1915 | 2077 | |
| 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 | + | |
| 1916 | 2116 | def decode_disdiapason(value) when is_binary(value), do: value |
| 1917 | 2117 | def decode_disdiapason(_), do: {:error, "Unexpected type when decoding StrenuosityClass.disdiapason"} |
| 1918 | 2118 | |
| 1919 | 2119 | def encode_disdiapason(value) when is_binary(value), do: value |
| 1920 | 2120 | def encode_disdiapason(_), do: {:error, "Unexpected type when encoding StrenuosityClass.disdiapason"} |
| 1921 | 2121 | |
| 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 | + | |
| 1922 | 2218 | def from_map(m) do |
| 1923 | 2219 | %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"]), | |
| 1930 | 2226 | 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"]), | |
| 1934 | 2230 | 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"]), | |
| 1938 | 2234 | 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"]), | |
| 1949 | 2245 | } |
| 1950 | 2246 | end |
| 1951 | 2247 | |
| @@ -2023,6 +2319,20 @@ defmodule TruantcyClass do | ||
| 2023 | 2319 | yuman: nil | nil |
| 2024 | 2320 | } |
| 2025 | 2321 | |
| 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 | + | |
| 2026 | 2336 | def decode_disdiapason(value) when is_binary(value), do: value |
| 2027 | 2337 | def decode_disdiapason(_), do: {:error, "Unexpected type when decoding TruantcyClass.disdiapason"} |
| 2028 | 2338 | |
| @@ -2034,9 +2344,9 @@ defmodule TruantcyClass do | ||
| 2034 | 2344 | alfiona: m["alfiona"], |
| 2035 | 2345 | ascaridiasis: m["ascaridiasis"], |
| 2036 | 2346 | bungey: m["bungey"], |
| 2037 | - catharticalness: m["catharticalness"], | |
| 2347 | + catharticalness: m["catharticalness"] && decode_catharticalness(m["catharticalness"]), | |
| 2038 | 2348 | ceroxyle: m["ceroxyle"], |
| 2039 | - chirotherium: m["Chirotherium"], | |
| 2349 | + chirotherium: m["Chirotherium"] && decode_chirotherium(m["Chirotherium"]), | |
| 2040 | 2350 | chorology: m["chorology"], |
| 2041 | 2351 | disdiapason: m["disdiapason"] && decode_disdiapason(m["disdiapason"]), |
| 2042 | 2352 | enmarble: m["enmarble"], |
| @@ -2133,39 +2443,173 @@ defmodule UnimpeachablyClass do | ||
| 2133 | 2443 | unsuggestedness: integer() | nil |
| 2134 | 2444 | } |
| 2135 | 2445 | |
| 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 | + | |
| 2136 | 2490 | def decode_disdiapason(value) when is_binary(value), do: value |
| 2137 | 2491 | def decode_disdiapason(_), do: {:error, "Unexpected type when decoding UnimpeachablyClass.disdiapason"} |
| 2138 | 2492 | |
| 2139 | 2493 | def encode_disdiapason(value) when is_binary(value), do: value |
| 2140 | 2494 | def encode_disdiapason(_), do: {:error, "Unexpected type when encoding UnimpeachablyClass.disdiapason"} |
| 2141 | 2495 | |
| 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 | + | |
| 2142 | 2586 | def from_map(m) do |
| 2143 | 2587 | %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"]), | |
| 2151 | 2595 | 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"]), | |
| 2154 | 2598 | 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"]), | |
| 2160 | 2604 | 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"]), | |
| 2169 | 2613 | } |
| 2170 | 2614 | end |
Test case
37 generated files · +764 −48test/inputs/json/priority/keywords.json
Mcjsondefault / TopLevel.c+65 −0
| @@ -14990,6 +14990,61 @@ void cJSON_DeleteRight(struct Right * x) { | ||
| 14990 | 14990 | } |
| 14991 | 14991 | } |
| 14992 | 14992 | |
| 14993 | +struct S * cJSON_ParseS(const char * s) { | |
| 14994 | + struct S * x = NULL; | |
| 14995 | + if (NULL != s) { | |
| 14996 | + cJSON * j = cJSON_Parse(s); | |
| 14997 | + if (NULL != j) { | |
| 14998 | + x = cJSON_GetSValue(j); | |
| 14999 | + cJSON_Delete(j); | |
| 15000 | + } | |
| 15001 | + } | |
| 15002 | + return x; | |
| 15003 | +} | |
| 15004 | + | |
| 15005 | +struct S * cJSON_GetSValue(const cJSON * j) { | |
| 15006 | + struct S * x = NULL; | |
| 15007 | + if (NULL != j) { | |
| 15008 | + if (NULL != (x = cJSON_malloc(sizeof(struct S)))) { | |
| 15009 | + memset(x, 0, sizeof(struct S)); | |
| 15010 | + if (!cJSON_HasObjectItem(j, "s")) { cJSON_DeleteS(x); return NULL; } | |
| 15011 | + if (cJSON_HasObjectItem(j, "s")) { | |
| 15012 | + if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "s"))) { cJSON_DeleteS(x); return NULL; } | |
| 15013 | + x->s = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "s")); | |
| 15014 | + } | |
| 15015 | + } | |
| 15016 | + } | |
| 15017 | + return x; | |
| 15018 | +} | |
| 15019 | + | |
| 15020 | +cJSON * cJSON_CreateS(const struct S * x) { | |
| 15021 | + cJSON * j = NULL; | |
| 15022 | + if (NULL != x) { | |
| 15023 | + if (NULL != (j = cJSON_CreateObject())) { | |
| 15024 | + cJSON_AddNumberToObject(j, "s", x->s); | |
| 15025 | + } | |
| 15026 | + } | |
| 15027 | + return j; | |
| 15028 | +} | |
| 15029 | + | |
| 15030 | +char * cJSON_PrintS(const struct S * x) { | |
| 15031 | + char * s = NULL; | |
| 15032 | + if (NULL != x) { | |
| 15033 | + cJSON * j = cJSON_CreateS(x); | |
| 15034 | + if (NULL != j) { | |
| 15035 | + s = cJSON_Print(j); | |
| 15036 | + cJSON_Delete(j); | |
| 15037 | + } | |
| 15038 | + } | |
| 15039 | + return s; | |
| 15040 | +} | |
| 15041 | + | |
| 15042 | +void cJSON_DeleteS(struct S * x) { | |
| 15043 | + if (NULL != x) { | |
| 15044 | + cJSON_free(x); | |
| 15045 | + } | |
| 15046 | +} | |
| 15047 | + | |
| 14993 | 15048 | struct Sbyte * cJSON_ParseSbyte(const char * s) { |
| 14994 | 15049 | struct Sbyte * x = NULL; |
| 14995 | 15050 | if (NULL != s) { |
| @@ -16621,6 +16676,12 @@ struct Obj4 * cJSON_GetObj4Value(const cJSON * j) { | ||
| 16621 | 16676 | x->right = cJSON_GetRightValue(cJSON_GetObjectItemCaseSensitive(j, "right")); |
| 16622 | 16677 | if (NULL == x->right) { cJSON_DeleteObj4(x); return NULL; } |
| 16623 | 16678 | } |
| 16679 | + if (!cJSON_HasObjectItem(j, "s")) { cJSON_DeleteObj4(x); return NULL; } | |
| 16680 | + if (cJSON_HasObjectItem(j, "s")) { | |
| 16681 | + if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "s"))) { cJSON_DeleteObj4(x); return NULL; } | |
| 16682 | + x->s = cJSON_GetSValue(cJSON_GetObjectItemCaseSensitive(j, "s")); | |
| 16683 | + if (NULL == x->s) { cJSON_DeleteObj4(x); return NULL; } | |
| 16684 | + } | |
| 16624 | 16685 | if (!cJSON_HasObjectItem(j, "sbyte")) { cJSON_DeleteObj4(x); return NULL; } |
| 16625 | 16686 | if (cJSON_HasObjectItem(j, "sbyte")) { |
| 16626 | 16687 | if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "sbyte"))) { cJSON_DeleteObj4(x); return NULL; } |
| @@ -16820,6 +16881,7 @@ cJSON * cJSON_CreateObj4(const struct Obj4 * x) { | ||
| 16820 | 16881 | cJSON_AddItemToObject(j, "retain", cJSON_CreateRetain(x->retain)); |
| 16821 | 16882 | cJSON_AddItemToObject(j, "rethrows", cJSON_CreateRethrows(x->rethrows)); |
| 16822 | 16883 | cJSON_AddItemToObject(j, "right", cJSON_CreateRight(x->right)); |
| 16884 | + cJSON_AddItemToObject(j, "s", cJSON_CreateS(x->s)); | |
| 16823 | 16885 | cJSON_AddItemToObject(j, "sbyte", cJSON_CreateSbyte(x->sbyte)); |
| 16824 | 16886 | cJSON_AddItemToObject(j, "sealed", cJSON_CreateSealed(x->sealed)); |
| 16825 | 16887 | cJSON_AddItemToObject(j, "SEL", cJSON_CreateSel(x->sel)); |
| @@ -16981,6 +17043,9 @@ void cJSON_DeleteObj4(struct Obj4 * x) { | ||
| 16981 | 17043 | if (NULL != x->right) { |
| 16982 | 17044 | cJSON_DeleteRight(x->right); |
| 16983 | 17045 | } |
| 17046 | + if (NULL != x->s) { | |
| 17047 | + cJSON_DeleteS(x->s); | |
| 17048 | + } | |
| 16984 | 17049 | if (NULL != x->sbyte) { |
| 16985 | 17050 | cJSON_DeleteSbyte(x->sbyte); |
| 16986 | 17051 | } |
Mcjsondefault / TopLevel.h+11 −0
| @@ -1181,6 +1181,10 @@ struct Right { | ||
| 1181 | 1181 | int64_t right; |
| 1182 | 1182 | }; |
| 1183 | 1183 | |
| 1184 | +struct S { | |
| 1185 | + int64_t s; | |
| 1186 | +}; | |
| 1187 | + | |
| 1184 | 1188 | struct Sbyte { |
| 1185 | 1189 | int64_t sbyte; |
| 1186 | 1190 | }; |
| @@ -1322,6 +1326,7 @@ struct Obj4 { | ||
| 1322 | 1326 | struct Retain * retain; |
| 1323 | 1327 | struct Rethrows * rethrows; |
| 1324 | 1328 | struct Right * right; |
| 1329 | + struct S * s; | |
| 1325 | 1330 | struct Sbyte * sbyte; |
| 1326 | 1331 | struct Sealed * sealed; |
| 1327 | 1332 | struct Sel * sel; |
| @@ -2884,6 +2889,12 @@ cJSON * cJSON_CreateRight(const struct Right * x); | ||
| 2884 | 2889 | char * cJSON_PrintRight(const struct Right * x); |
| 2885 | 2890 | void cJSON_DeleteRight(struct Right * x); |
| 2886 | 2891 | |
| 2892 | +struct S * cJSON_ParseS(const char * s); | |
| 2893 | +struct S * cJSON_GetSValue(const cJSON * j); | |
| 2894 | +cJSON * cJSON_CreateS(const struct S * x); | |
| 2895 | +char * cJSON_PrintS(const struct S * x); | |
| 2896 | +void cJSON_DeleteS(struct S * x); | |
| 2897 | + | |
| 2887 | 2898 | struct Sbyte * cJSON_ParseSbyte(const char * s); |
| 2888 | 2899 | struct Sbyte * cJSON_GetSbyteValue(const cJSON * j); |
| 2889 | 2900 | cJSON * cJSON_CreateSbyte(const struct Sbyte * x); |
Mcplusplusdefault / quicktype.hpp+35 −0
| @@ -4310,6 +4310,20 @@ namespace quicktype { | ||
| 4310 | 4310 | void set_right(const int64_t & value) { this->right = value; } |
| 4311 | 4311 | }; |
| 4312 | 4312 | |
| 4313 | + class S { | |
| 4314 | + public: | |
| 4315 | + S() = default; | |
| 4316 | + virtual ~S() = default; | |
| 4317 | + | |
| 4318 | + private: | |
| 4319 | + int64_t s; | |
| 4320 | + | |
| 4321 | + public: | |
| 4322 | + const int64_t & get_s() const { return s; } | |
| 4323 | + int64_t & get_mutable_s() { return s; } | |
| 4324 | + void set_s(const int64_t & value) { this->s = value; } | |
| 4325 | + }; | |
| 4326 | + | |
| 4313 | 4327 | class Sbyte { |
| 4314 | 4328 | public: |
| 4315 | 4329 | Sbyte() = default; |
| @@ -4719,6 +4733,7 @@ namespace quicktype { | ||
| 4719 | 4733 | Retain retain; |
| 4720 | 4734 | Rethrows rethrows; |
| 4721 | 4735 | Right right; |
| 4736 | + S s; | |
| 4722 | 4737 | Sbyte sbyte; |
| 4723 | 4738 | Sealed sealed; |
| 4724 | 4739 | Sel sel; |
| @@ -4903,6 +4918,10 @@ namespace quicktype { | ||
| 4903 | 4918 | Right & get_mutable_right() { return right; } |
| 4904 | 4919 | void set_right(const Right & value) { this->right = value; } |
| 4905 | 4920 | |
| 4921 | + const S & get_s() const { return s; } | |
| 4922 | + S & get_mutable_s() { return s; } | |
| 4923 | + void set_s(const S & value) { this->s = value; } | |
| 4924 | + | |
| 4906 | 4925 | const Sbyte & get_sbyte() const { return sbyte; } |
| 4907 | 4926 | Sbyte & get_mutable_sbyte() { return sbyte; } |
| 4908 | 4927 | void set_sbyte(const Sbyte & value) { this->sbyte = value; } |
| @@ -6151,6 +6170,9 @@ namespace quicktype { | ||
| 6151 | 6170 | void from_json(const json & j, Right & x); |
| 6152 | 6171 | void to_json(json & j, const Right & x); |
| 6153 | 6172 | |
| 6173 | + void from_json(const json & j, S & x); | |
| 6174 | + void to_json(json & j, const S & x); | |
| 6175 | + | |
| 6154 | 6176 | void from_json(const json & j, Sbyte & x); |
| 6155 | 6177 | void to_json(json & j, const Sbyte & x); |
| 6156 | 6178 | |
| @@ -9284,6 +9306,17 @@ namespace quicktype { | ||
| 9284 | 9306 | j["right"] = x.get_right(); |
| 9285 | 9307 | } |
| 9286 | 9308 | |
| 9309 | + inline void from_json(const json & j, S& x) { | |
| 9310 | + if (!j.is_object()) throw std::runtime_error("Expected object"); | |
| 9311 | + if (j.find("s") != j.end() && !j.at("s").is_number_integer()) throw std::runtime_error("Expected integer"); | |
| 9312 | + x.set_s(j.at("s").get<int64_t>()); | |
| 9313 | + } | |
| 9314 | + | |
| 9315 | + inline void to_json(json & j, const S & x) { | |
| 9316 | + j = json::object(); | |
| 9317 | + j["s"] = x.get_s(); | |
| 9318 | + } | |
| 9319 | + | |
| 9287 | 9320 | inline void from_json(const json & j, Sbyte& x) { |
| 9288 | 9321 | if (!j.is_object()) throw std::runtime_error("Expected object"); |
| 9289 | 9322 | if (j.find("sbyte") != j.end() && !j.at("sbyte").is_number_integer()) throw std::runtime_error("Expected integer"); |
| @@ -9612,6 +9645,7 @@ namespace quicktype { | ||
| 9612 | 9645 | x.set_retain(j.at("retain").get<Retain>()); |
| 9613 | 9646 | x.set_rethrows(j.at("rethrows").get<Rethrows>()); |
| 9614 | 9647 | x.set_right(j.at("right").get<Right>()); |
| 9648 | + x.set_s(j.at("s").get<S>()); | |
| 9615 | 9649 | x.set_sbyte(j.at("sbyte").get<Sbyte>()); |
| 9616 | 9650 | x.set_sealed(j.at("sealed").get<Sealed>()); |
| 9617 | 9651 | x.set_sel(j.at("SEL").get<Sel>()); |
| @@ -9681,6 +9715,7 @@ namespace quicktype { | ||
| 9681 | 9715 | j["retain"] = x.get_retain(); |
| 9682 | 9716 | j["rethrows"] = x.get_rethrows(); |
| 9683 | 9717 | j["right"] = x.get_right(); |
| 9718 | + j["s"] = x.get_s(); | |
| 9684 | 9719 | j["sbyte"] = x.get_sbyte(); |
| 9685 | 9720 | j["sealed"] = x.get_sealed(); |
| 9686 | 9721 | j["SEL"] = x.get_sel(); |
Mcrystaldefault / TopLevel.cr+8 −0
| @@ -1755,6 +1755,8 @@ class Obj4 | ||
| 1755 | 1755 | |
| 1756 | 1756 | property right : Right |
| 1757 | 1757 | |
| 1758 | + property s : S | |
| 1759 | + | |
| 1758 | 1760 | property sbyte : Sbyte |
| 1759 | 1761 | |
| 1760 | 1762 | property sealed : Sealed |
| @@ -2020,6 +2022,12 @@ class Right | ||
| 2020 | 2022 | property right : Int64 |
| 2021 | 2023 | end |
| 2022 | 2024 | |
| 2025 | +class S | |
| 2026 | + include JSON::Serializable | |
| 2027 | + | |
| 2028 | + property s : Int64 | |
| 2029 | +end | |
| 2030 | + | |
| 2023 | 2031 | class Sbyte |
| 2024 | 2032 | include JSON::Serializable |
Mcsharp-recordsdefault / QuickType.cs+9 −0
| @@ -1885,6 +1885,9 @@ namespace QuickType | ||
| 1885 | 1885 | [JsonProperty("right", Required = Required.Always)] |
| 1886 | 1886 | public Right Right { get; set; } |
| 1887 | 1887 | |
| 1888 | + [JsonProperty("s", Required = Required.Always)] | |
| 1889 | + public S S { get; set; } | |
| 1890 | + | |
| 1888 | 1891 | [JsonProperty("sbyte", Required = Required.Always)] |
| 1889 | 1892 | public Sbyte Sbyte { get; set; } |
| 1890 | 1893 | |
| @@ -2141,6 +2144,12 @@ namespace QuickType | ||
| 2141 | 2144 | public long RightRight { get; set; } |
| 2142 | 2145 | } |
| 2143 | 2146 | |
| 2147 | + public partial record S | |
| 2148 | + { | |
| 2149 | + [JsonProperty("s", Required = Required.Always)] | |
| 2150 | + public long SS { get; set; } | |
| 2151 | + } | |
| 2152 | + | |
| 2144 | 2153 | public partial record Sbyte |
| 2145 | 2154 | { |
| 2146 | 2155 | [JsonProperty("sbyte", Required = Required.Always)] |
Mcsharp-SystemTextJsondefault / QuickType.cs+11 −0
| @@ -2303,6 +2303,10 @@ namespace QuickType | ||
| 2303 | 2303 | [JsonPropertyName("right")] |
| 2304 | 2304 | public Right Right { get; set; } |
| 2305 | 2305 | |
| 2306 | + [JsonRequired] | |
| 2307 | + [JsonPropertyName("s")] | |
| 2308 | + public S S { get; set; } | |
| 2309 | + | |
| 2306 | 2310 | [JsonRequired] |
| 2307 | 2311 | [JsonPropertyName("sbyte")] |
| 2308 | 2312 | public Sbyte Sbyte { get; set; } |
| @@ -2623,6 +2627,13 @@ namespace QuickType | ||
| 2623 | 2627 | public long RightRight { get; set; } |
| 2624 | 2628 | } |
| 2625 | 2629 | |
| 2630 | + public partial class S | |
| 2631 | + { | |
| 2632 | + [JsonRequired] | |
| 2633 | + [JsonPropertyName("s")] | |
| 2634 | + public long SS { get; set; } | |
| 2635 | + } | |
| 2636 | + | |
| 2626 | 2637 | public partial class Sbyte |
| 2627 | 2638 | { |
| 2628 | 2639 | [JsonRequired] |
Mcsharpdefault / QuickType.cs+9 −0
| @@ -1885,6 +1885,9 @@ namespace QuickType | ||
| 1885 | 1885 | [JsonProperty("right", Required = Required.Always)] |
| 1886 | 1886 | public Right Right { get; set; } |
| 1887 | 1887 | |
| 1888 | + [JsonProperty("s", Required = Required.Always)] | |
| 1889 | + public S S { get; set; } | |
| 1890 | + | |
| 1888 | 1891 | [JsonProperty("sbyte", Required = Required.Always)] |
| 1889 | 1892 | public Sbyte Sbyte { get; set; } |
| 1890 | 1893 | |
| @@ -2141,6 +2144,12 @@ namespace QuickType | ||
| 2141 | 2144 | public long RightRight { get; set; } |
| 2142 | 2145 | } |
| 2143 | 2146 | |
| 2147 | + public partial class S | |
| 2148 | + { | |
| 2149 | + [JsonProperty("s", Required = Required.Always)] | |
| 2150 | + public long SS { get; set; } | |
| 2151 | + } | |
| 2152 | + | |
| 2144 | 2153 | public partial class Sbyte |
| 2145 | 2154 | { |
| 2146 | 2155 | [JsonProperty("sbyte", Required = Required.Always)] |
Mdartdefault / TopLevel.dart+20 −0
| @@ -4024,6 +4024,7 @@ class Obj4 { | ||
| 4024 | 4024 | final Retain retain; |
| 4025 | 4025 | final Rethrows rethrows; |
| 4026 | 4026 | final Right right; |
| 4027 | + final S s; | |
| 4027 | 4028 | final Sbyte sbyte; |
| 4028 | 4029 | final Sealed sealed; |
| 4029 | 4030 | final Sel sel; |
| @@ -4091,6 +4092,7 @@ class Obj4 { | ||
| 4091 | 4092 | required this.retain, |
| 4092 | 4093 | required this.rethrows, |
| 4093 | 4094 | required this.right, |
| 4095 | + required this.s, | |
| 4094 | 4096 | required this.sbyte, |
| 4095 | 4097 | required this.sealed, |
| 4096 | 4098 | required this.sel, |
| @@ -4159,6 +4161,7 @@ class Obj4 { | ||
| 4159 | 4161 | retain: Retain.fromJson(json["retain"]), |
| 4160 | 4162 | rethrows: Rethrows.fromJson(json["rethrows"]), |
| 4161 | 4163 | right: Right.fromJson(json["right"]), |
| 4164 | + s: S.fromJson(json["s"]), | |
| 4162 | 4165 | sbyte: Sbyte.fromJson(json["sbyte"]), |
| 4163 | 4166 | sealed: Sealed.fromJson(json["sealed"]), |
| 4164 | 4167 | sel: Sel.fromJson(json["SEL"]), |
| @@ -4227,6 +4230,7 @@ class Obj4 { | ||
| 4227 | 4230 | "retain": retain.toJson(), |
| 4228 | 4231 | "rethrows": rethrows.toJson(), |
| 4229 | 4232 | "right": right.toJson(), |
| 4233 | + "s": s.toJson(), | |
| 4230 | 4234 | "sbyte": sbyte.toJson(), |
| 4231 | 4235 | "sealed": sealed.toJson(), |
| 4232 | 4236 | "SEL": sel.toJson(), |
| @@ -4744,6 +4748,22 @@ class Right { | ||
| 4744 | 4748 | }; |
| 4745 | 4749 | } |
| 4746 | 4750 | |
| 4751 | +class S { | |
| 4752 | + final int s; | |
| 4753 | + | |
| 4754 | + S({ | |
| 4755 | + required this.s, | |
| 4756 | + }); | |
| 4757 | + | |
| 4758 | + factory S.fromJson(Map<String, dynamic> json) => S( | |
| 4759 | + s: json["s"], | |
| 4760 | + ); | |
| 4761 | + | |
| 4762 | + Map<String, dynamic> toJson() => { | |
| 4763 | + "s": s, | |
| 4764 | + }; | |
| 4765 | +} | |
| 4766 | + | |
| 4747 | 4767 | class Sbyte { |
| 4748 | 4768 | final int sbyte; |
Melixirdefault / QuickType.ex+44 −2
| @@ -9092,6 +9092,45 @@ defmodule Right do | ||
| 9092 | 9092 | end |
| 9093 | 9093 | end |
| 9094 | 9094 | |
| 9095 | +defmodule S do | |
| 9096 | + @enforce_keys [:s] | |
| 9097 | + defstruct [:s] | |
| 9098 | + | |
| 9099 | + @type t :: %__MODULE__{ | |
| 9100 | + s: integer() | |
| 9101 | + } | |
| 9102 | + | |
| 9103 | + def decode_s(value) when is_integer(value), do: value | |
| 9104 | + def decode_s(_), do: {:error, "Unexpected type when decoding S.s"} | |
| 9105 | + | |
| 9106 | + def encode_s(value) when is_integer(value), do: value | |
| 9107 | + def encode_s(_), do: {:error, "Unexpected type when encoding S.s"} | |
| 9108 | + | |
| 9109 | + def from_map(m) do | |
| 9110 | + %S{ | |
| 9111 | + s: decode_s(m["s"]), | |
| 9112 | + } | |
| 9113 | + end | |
| 9114 | + | |
| 9115 | + def from_json(json) do | |
| 9116 | + json | |
| 9117 | + |> Jason.decode!() | |
| 9118 | + |> from_map() | |
| 9119 | + end | |
| 9120 | + | |
| 9121 | + def to_map(struct) do | |
| 9122 | + %{ | |
| 9123 | + "s" => struct.s, | |
| 9124 | + } | |
| 9125 | + end | |
| 9126 | + | |
| 9127 | + def to_json(struct) do | |
| 9128 | + struct | |
| 9129 | + |> to_map() | |
| 9130 | + |> Jason.encode!() | |
| 9131 | + end | |
| 9132 | +end | |
| 9133 | + | |
| 9095 | 9134 | defmodule Sbyte do |
| 9096 | 9135 | @enforce_keys [:sbyte] |
| 9097 | 9136 | defstruct [:sbyte] |
| @@ -10809,8 +10848,8 @@ defmodule Undefined do | ||
| 10809 | 10848 | end |
| 10810 | 10849 | |
| 10811 | 10850 | defmodule Obj4 do |
| 10812 | - @enforce_keys [:dummy, :obj4_self, :obj4_true, :obj4_type, :public, :quicktype, :raise, :range, :readonly, :ref, :register, :reinterpret_cast, :repeat, :require, :required, :requires, :restrict, :retain, :rethrows, :return, :right, :sbyte, :sealed, :sel, :select, :self, :serialize, :set, :short, :signed, :sizeof, :stackalloc, :static, :static_assert, :static_cast, :strictfp, :string, :struct, :subscript, :super, :switch, :symbol, :synchronized, :system, :template, :then, :this, :thread_local, :throw, :throws, :to_json, :top_level, :transient, :true_1, :try, :type, :typealias, :typedef, :typeid, :typename, :typeof, :uint, :ulong, :unchecked, :undefined] | |
| 10813 | - defstruct [:dummy, :obj4_self, :obj4_true, :obj4_type, :public, :quicktype, :raise, :range, :readonly, :ref, :register, :reinterpret_cast, :repeat, :require, :required, :requires, :restrict, :retain, :rethrows, :return, :right, :sbyte, :sealed, :sel, :select, :self, :serialize, :set, :short, :signed, :sizeof, :stackalloc, :static, :static_assert, :static_cast, :strictfp, :string, :struct, :subscript, :super, :switch, :symbol, :synchronized, :system, :template, :then, :this, :thread_local, :throw, :throws, :to_json, :top_level, :transient, :true_1, :try, :type, :typealias, :typedef, :typeid, :typename, :typeof, :uint, :ulong, :unchecked, :undefined] | |
| 10851 | + @enforce_keys [:dummy, :obj4_self, :obj4_true, :obj4_type, :public, :quicktype, :raise, :range, :readonly, :ref, :register, :reinterpret_cast, :repeat, :require, :required, :requires, :restrict, :retain, :rethrows, :return, :right, :s, :sbyte, :sealed, :sel, :select, :self, :serialize, :set, :short, :signed, :sizeof, :stackalloc, :static, :static_assert, :static_cast, :strictfp, :string, :struct, :subscript, :super, :switch, :symbol, :synchronized, :system, :template, :then, :this, :thread_local, :throw, :throws, :to_json, :top_level, :transient, :true_1, :try, :type, :typealias, :typedef, :typeid, :typename, :typeof, :uint, :ulong, :unchecked, :undefined] | |
| 10852 | + defstruct [:dummy, :obj4_self, :obj4_true, :obj4_type, :public, :quicktype, :raise, :range, :readonly, :ref, :register, :reinterpret_cast, :repeat, :require, :required, :requires, :restrict, :retain, :rethrows, :return, :right, :s, :sbyte, :sealed, :sel, :select, :self, :serialize, :set, :short, :signed, :sizeof, :stackalloc, :static, :static_assert, :static_cast, :strictfp, :string, :struct, :subscript, :super, :switch, :symbol, :synchronized, :system, :template, :then, :this, :thread_local, :throw, :throws, :to_json, :top_level, :transient, :true_1, :try, :type, :typealias, :typedef, :typeid, :typename, :typeof, :uint, :ulong, :unchecked, :undefined] | |
| 10814 | 10853 | |
| 10815 | 10854 | @type t :: %__MODULE__{ |
| 10816 | 10855 | dummy: integer(), |
| @@ -10834,6 +10873,7 @@ defmodule Obj4 do | ||
| 10834 | 10873 | rethrows: Rethrows.t(), |
| 10835 | 10874 | return: Return.t(), |
| 10836 | 10875 | right: Right.t(), |
| 10876 | + s: S.t(), | |
| 10837 | 10877 | sbyte: Sbyte.t(), |
| 10838 | 10878 | sealed: Sealed.t(), |
| 10839 | 10879 | sel: Sel.t(), |
| @@ -10909,6 +10949,7 @@ defmodule Obj4 do | ||
| 10909 | 10949 | rethrows: Rethrows.from_map(m["rethrows"]), |
| 10910 | 10950 | return: Return.from_map(m["return"]), |
| 10911 | 10951 | right: Right.from_map(m["right"]), |
| 10952 | + s: S.from_map(m["s"]), | |
| 10912 | 10953 | sbyte: Sbyte.from_map(m["sbyte"]), |
| 10913 | 10954 | sealed: Sealed.from_map(m["sealed"]), |
| 10914 | 10955 | sel: Sel.from_map(m["SEL"]), |
| @@ -10985,6 +11026,7 @@ defmodule Obj4 do | ||
| 10985 | 11026 | "rethrows" => Rethrows.to_map(struct.rethrows), |
| 10986 | 11027 | "return" => Return.to_map(struct.return), |
| 10987 | 11028 | "right" => Right.to_map(struct.right), |
| 11029 | + "s" => S.to_map(struct.s), | |
| 10988 | 11030 | "sbyte" => Sbyte.to_map(struct.sbyte), |
| 10989 | 11031 | "sealed" => Sealed.to_map(struct.sealed), |
| 10990 | 11032 | "SEL" => Sel.to_map(struct.sel), |
Melmdefault / QuickType.elm+19 −0
| @@ -237,6 +237,7 @@ module QuickType exposing | ||
| 237 | 237 | , Rethrows |
| 238 | 238 | , Return |
| 239 | 239 | , Right |
| 240 | + , S | |
| 240 | 241 | , Sbyte |
| 241 | 242 | , Sealed |
| 242 | 243 | , Sel |
| @@ -1327,6 +1328,7 @@ type alias Obj4 = | ||
| 1327 | 1328 | , rethrows : Rethrows |
| 1328 | 1329 | , return : Return |
| 1329 | 1330 | , right : Right |
| 1331 | + , s : S | |
| 1330 | 1332 | , sbyte : Sbyte |
| 1331 | 1333 | , sealed : Sealed |
| 1332 | 1334 | , sel : Sel |
| @@ -1462,6 +1464,10 @@ type alias Right = | ||
| 1462 | 1464 | { right : Int |
| 1463 | 1465 | } |
| 1464 | 1466 | |
| 1467 | +type alias S = | |
| 1468 | + { s : Int | |
| 1469 | + } | |
| 1470 | + | |
| 1465 | 1471 | type alias Sbyte = |
| 1466 | 1472 | { sbyte : Int |
| 1467 | 1473 | } |
| @@ -4357,6 +4363,7 @@ obj4 = | ||
| 4357 | 4363 | |> Jpipe.required "rethrows" rethrows |
| 4358 | 4364 | |> Jpipe.required "return" return |
| 4359 | 4365 | |> Jpipe.required "right" right |
| 4366 | + |> Jpipe.required "s" s | |
| 4360 | 4367 | |> Jpipe.required "sbyte" sbyte |
| 4361 | 4368 | |> Jpipe.required "sealed" sealed |
| 4362 | 4369 | |> Jpipe.required "SEL" sel |
| @@ -4426,6 +4433,7 @@ encodeObj4 x = | ||
| 4426 | 4433 | , ("rethrows", encodeRethrows x.rethrows) |
| 4427 | 4434 | , ("return", encodeReturn x.return) |
| 4428 | 4435 | , ("right", encodeRight x.right) |
| 4436 | + , ("s", encodeS x.s) | |
| 4429 | 4437 | , ("sbyte", encodeSbyte x.sbyte) |
| 4430 | 4438 | , ("sealed", encodeSealed x.sealed) |
| 4431 | 4439 | , ("SEL", encodeSel x.sel) |
| @@ -4722,6 +4730,17 @@ encodeRight x = | ||
| 4722 | 4730 | [ ("right", Jenc.int x.right) |
| 4723 | 4731 | ] |
| 4724 | 4732 | |
| 4733 | +s : Jdec.Decoder S | |
| 4734 | +s = | |
| 4735 | + Jdec.succeed S | |
| 4736 | + |> Jpipe.required "s" Jdec.int | |
| 4737 | + | |
| 4738 | +encodeS : S -> Jenc.Value | |
| 4739 | +encodeS x = | |
| 4740 | + Jenc.object | |
| 4741 | + [ ("s", Jenc.int x.s) | |
| 4742 | + ] | |
| 4743 | + | |
| 4725 | 4744 | sbyte : Jdec.Decoder Sbyte |
| 4726 | 4745 | sbyte = |
| 4727 | 4746 | Jdec.succeed Sbyte |
Mflowdefault / TopLevel.js+9 −0
| @@ -1028,6 +1028,7 @@ export type Obj4 = { | ||
| 1028 | 1028 | rethrows: Rethrows; |
| 1029 | 1029 | return: Return; |
| 1030 | 1030 | right: Right; |
| 1031 | + s: S; | |
| 1031 | 1032 | sbyte: Sbyte; |
| 1032 | 1033 | sealed: Sealed; |
| 1033 | 1034 | select: Select; |
| @@ -1157,6 +1158,10 @@ export type Right = { | ||
| 1157 | 1158 | right: number; |
| 1158 | 1159 | }; |
| 1159 | 1160 | |
| 1161 | +export type S = { | |
| 1162 | + s: number; | |
| 1163 | +}; | |
| 1164 | + | |
| 1160 | 1165 | export type Sbyte = { |
| 1161 | 1166 | sbyte: number; |
| 1162 | 1167 | }; |
| @@ -2438,6 +2443,7 @@ const typeMap: any = { | ||
| 2438 | 2443 | { json: "rethrows", js: "rethrows", typ: r("Rethrows") }, |
| 2439 | 2444 | { json: "return", js: "return", typ: r("Return") }, |
| 2440 | 2445 | { json: "right", js: "right", typ: r("Right") }, |
| 2446 | + { json: "s", js: "s", typ: r("S") }, | |
| 2441 | 2447 | { json: "sbyte", js: "sbyte", typ: r("Sbyte") }, |
| 2442 | 2448 | { json: "sealed", js: "sealed", typ: r("Sealed") }, |
| 2443 | 2449 | { json: "select", js: "select", typ: r("Select") }, |
| @@ -2545,6 +2551,9 @@ const typeMap: any = { | ||
| 2545 | 2551 | "Right": o([ |
| 2546 | 2552 | { json: "right", js: "right", typ: i(0) }, |
| 2547 | 2553 | ], false), |
| 2554 | + "S": o([ | |
| 2555 | + { json: "s", js: "s", typ: i(0) }, | |
| 2556 | + ], false), | |
| 2548 | 2557 | "Sbyte": o([ |
| 2549 | 2558 | { json: "sbyte", js: "sbyte", typ: i(0) }, |
| 2550 | 2559 | ], false), |
Mgolangdefault / quicktype.go+5 −0
| @@ -1036,6 +1036,7 @@ type Obj4 struct { | ||
| 1036 | 1036 | Rethrows Rethrows `json:"rethrows"` |
| 1037 | 1037 | Return Return `json:"return"` |
| 1038 | 1038 | Right Right `json:"right"` |
| 1039 | + S S `json:"s"` | |
| 1039 | 1040 | Sbyte Sbyte `json:"sbyte"` |
| 1040 | 1041 | Sealed Sealed `json:"sealed"` |
| 1041 | 1042 | Sel Sel `json:"SEL"` |
| @@ -1162,6 +1163,10 @@ type Right struct { | ||
| 1162 | 1163 | Right int64 `json:"right"` |
| 1163 | 1164 | } |
| 1164 | 1165 | |
| 1166 | +type S struct { | |
| 1167 | + S int64 `json:"s"` | |
| 1168 | +} | |
| 1169 | + | |
| 1165 | 1170 | type Sbyte struct { |
| 1166 | 1171 | Sbyte int64 `json:"sbyte"` |
| 1167 | 1172 | } |
Mhaskelldefault / QuickType.hs+19 −1
| @@ -224,6 +224,7 @@ module QuickType | ||
| 224 | 224 | , Rethrows (..) |
| 225 | 225 | , Return (..) |
| 226 | 226 | , RightClass (..) |
| 227 | + , S (..) | |
| 227 | 228 | , Sbyte (..) |
| 228 | 229 | , Sealed (..) |
| 229 | 230 | , Sel (..) |
| @@ -1316,6 +1317,7 @@ data Obj4 = Obj4 | ||
| 1316 | 1317 | , rethrowsObj4 :: Rethrows |
| 1317 | 1318 | , returnObj4 :: Return |
| 1318 | 1319 | , rightObj4 :: RightClass |
| 1320 | + , sObj4 :: S | |
| 1319 | 1321 | , sbyteObj4 :: Sbyte |
| 1320 | 1322 | , sealedObj4 :: Sealed |
| 1321 | 1323 | , selObj4 :: Sel |
| @@ -1448,6 +1450,10 @@ data RightClass = RightClass | ||
| 1448 | 1450 | { rightRightClass :: Int |
| 1449 | 1451 | } deriving (Show) |
| 1450 | 1452 | |
| 1453 | +data S = S | |
| 1454 | + { sS :: Int | |
| 1455 | + } deriving (Show) | |
| 1456 | + | |
| 1451 | 1457 | data Sbyte = Sbyte |
| 1452 | 1458 | { sbyteSbyte :: Int |
| 1453 | 1459 | } deriving (Show) |
| @@ -4114,7 +4120,7 @@ instance FromJSON Protocol where | ||
| 4114 | 4120 | <$> v .: "Protocol" |
| 4115 | 4121 | |
| 4116 | 4122 | instance ToJSON Obj4 where |
| 4117 | - toJSON (Obj4 dummyObj4 obj4SelfObj4 obj4ThenObj4 obj4TrueObj4 obj4TypeObj4 publicObj4 purpleTypeObj4 quicktypeObj4 raiseObj4 rangeObj4 readonlyObj4 refObj4 registerObj4 reinterpretCastObj4 repeatObj4 requireObj4 requiredObj4 requiresObj4 restrictObj4 retainObj4 rethrowsObj4 returnObj4 rightObj4 sbyteObj4 sealedObj4 selObj4 selectObj4 selfObj4 serializeObj4 setObj4 shortObj4 signedObj4 sizeofObj4 stackallocObj4 staticObj4 staticAssertObj4 staticCastObj4 strictfpObj4 stringObj4 structObj4 subscriptObj4 superObj4 switchObj4 symbolObj4 synchronizedObj4 systemObj4 templateObj4 thisObj4 threadLocalObj4 throwObj4 throwsObj4 toJSONObj4 topLevelObj4 transientObj4 trueObj4 tryObj4 typealiasObj4 typedefObj4 typeidObj4 typenameObj4 typeofObj4 uintObj4 ulongObj4 uncheckedObj4 undefinedObj4) = | |
| 4123 | + toJSON (Obj4 dummyObj4 obj4SelfObj4 obj4ThenObj4 obj4TrueObj4 obj4TypeObj4 publicObj4 purpleTypeObj4 quicktypeObj4 raiseObj4 rangeObj4 readonlyObj4 refObj4 registerObj4 reinterpretCastObj4 repeatObj4 requireObj4 requiredObj4 requiresObj4 restrictObj4 retainObj4 rethrowsObj4 returnObj4 rightObj4 sObj4 sbyteObj4 sealedObj4 selObj4 selectObj4 selfObj4 serializeObj4 setObj4 shortObj4 signedObj4 sizeofObj4 stackallocObj4 staticObj4 staticAssertObj4 staticCastObj4 strictfpObj4 stringObj4 structObj4 subscriptObj4 superObj4 switchObj4 symbolObj4 synchronizedObj4 systemObj4 templateObj4 thisObj4 threadLocalObj4 throwObj4 throwsObj4 toJSONObj4 topLevelObj4 transientObj4 trueObj4 tryObj4 typealiasObj4 typedefObj4 typeidObj4 typenameObj4 typeofObj4 uintObj4 ulongObj4 uncheckedObj4 undefinedObj4) = | |
| 4118 | 4124 | object |
| 4119 | 4125 | [ "dummy" .= dummyObj4 |
| 4120 | 4126 | , "self" .= obj4SelfObj4 |
| @@ -4139,6 +4145,7 @@ instance ToJSON Obj4 where | ||
| 4139 | 4145 | , "rethrows" .= rethrowsObj4 |
| 4140 | 4146 | , "return" .= returnObj4 |
| 4141 | 4147 | , "right" .= rightObj4 |
| 4148 | + , "s" .= sObj4 | |
| 4142 | 4149 | , "sbyte" .= sbyteObj4 |
| 4143 | 4150 | , "sealed" .= sealedObj4 |
| 4144 | 4151 | , "SEL" .= selObj4 |
| @@ -4208,6 +4215,7 @@ instance FromJSON Obj4 where | ||
| 4208 | 4215 | <*> v .: "rethrows" |
| 4209 | 4216 | <*> v .: "return" |
| 4210 | 4217 | <*> v .: "right" |
| 4218 | + <*> v .: "s" | |
| 4211 | 4219 | <*> v .: "sbyte" |
| 4212 | 4220 | <*> v .: "sealed" |
| 4213 | 4221 | <*> v .: "SEL" |
| @@ -4471,6 +4479,16 @@ instance FromJSON RightClass where | ||
| 4471 | 4479 | parseJSON (Object v) = RightClass |
| 4472 | 4480 | <$> v .: "right" |
| 4473 | 4481 | |
| 4482 | +instance ToJSON S where | |
| 4483 | + toJSON (S sS) = | |
| 4484 | + object | |
| 4485 | + [ "s" .= sS | |
| 4486 | + ] | |
| 4487 | + | |
| 4488 | +instance FromJSON S where | |
| 4489 | + parseJSON (Object v) = S | |
| 4490 | + <$> v .: "s" | |
| 4491 | + | |
| 4474 | 4492 | instance ToJSON Sbyte where |
| 4475 | 4493 | toJSON (Sbyte sbyteSbyte) = |
| 4476 | 4494 | object |
Mjava-datetime-legacydefault / src / main / java / io / quicktype / Obj4.java+6 −0
| @@ -36,6 +36,7 @@ public class Obj4 { | ||
| 36 | 36 | private Retain retain; |
| 37 | 37 | private Rethrows rethrows; |
| 38 | 38 | private Right right; |
| 39 | + private S s; | |
| 39 | 40 | private Sbyte sbyte; |
| 40 | 41 | private Sealed sealed; |
| 41 | 42 | private Sel sel; |
| @@ -234,6 +235,11 @@ public class Obj4 { | ||
| 234 | 235 | @JsonProperty("right") |
| 235 | 236 | public void setRight(Right value) { this.right = value; } |
| 236 | 237 | |
| 238 | + @JsonProperty("s") | |
| 239 | + public S getS() { return s; } | |
| 240 | + @JsonProperty("s") | |
| 241 | + public void setS(S value) { this.s = value; } | |
| 242 | + | |
| 237 | 243 | @JsonProperty("sbyte") |
| 238 | 244 | public Sbyte getSbyte() { return sbyte; } |
| 239 | 245 | @JsonProperty("sbyte") |
Ajava-datetime-legacydefault / src / main / java / io / quicktype / S.java+12 −0
| @@ -0,0 +1,12 @@ | ||
| 1 | +package io.quicktype; | |
| 2 | + | |
| 3 | +import com.fasterxml.jackson.annotation.*; | |
| 4 | + | |
| 5 | +public class S { | |
| 6 | + private long s; | |
| 7 | + | |
| 8 | + @JsonProperty("s") | |
| 9 | + public long getS() { return s; } | |
| 10 | + @JsonProperty("s") | |
| 11 | + public void setS(long value) { this.s = value; } | |
| 12 | +} |
Mjava-lombokdefault / src / main / java / io / quicktype / Obj4.java+6 −0
| @@ -36,6 +36,7 @@ public class Obj4 { | ||
| 36 | 36 | private Retain retain; |
| 37 | 37 | private Rethrows rethrows; |
| 38 | 38 | private Right right; |
| 39 | + private S s; | |
| 39 | 40 | private Sbyte sbyte; |
| 40 | 41 | private Sealed sealed; |
| 41 | 42 | private Sel sel; |
| @@ -234,6 +235,11 @@ public class Obj4 { | ||
| 234 | 235 | @JsonProperty("right") |
| 235 | 236 | public void setRight(Right value) { this.right = value; } |
| 236 | 237 | |
| 238 | + @JsonProperty("s") | |
| 239 | + public S getS() { return s; } | |
| 240 | + @JsonProperty("s") | |
| 241 | + public void setS(S value) { this.s = value; } | |
| 242 | + | |
| 237 | 243 | @JsonProperty("sbyte") |
| 238 | 244 | public Sbyte getSbyte() { return sbyte; } |
| 239 | 245 | @JsonProperty("sbyte") |
Ajava-lombokdefault / src / main / java / io / quicktype / S.java+12 −0
| @@ -0,0 +1,12 @@ | ||
| 1 | +package io.quicktype; | |
| 2 | + | |
| 3 | +import com.fasterxml.jackson.annotation.*; | |
| 4 | + | |
| 5 | +public class S { | |
| 6 | + private long s; | |
| 7 | + | |
| 8 | + @JsonProperty("s") | |
| 9 | + public long getS() { return s; } | |
| 10 | + @JsonProperty("s") | |
| 11 | + public void setS(long value) { this.s = value; } | |
| 12 | +} |
Mjavadefault / src / main / java / io / quicktype / Obj4.java+6 −0
| @@ -36,6 +36,7 @@ public class Obj4 { | ||
| 36 | 36 | private Retain retain; |
| 37 | 37 | private Rethrows rethrows; |
| 38 | 38 | private Right right; |
| 39 | + private S s; | |
| 39 | 40 | private Sbyte sbyte; |
| 40 | 41 | private Sealed sealed; |
| 41 | 42 | private Sel sel; |
| @@ -234,6 +235,11 @@ public class Obj4 { | ||
| 234 | 235 | @JsonProperty("right") |
| 235 | 236 | public void setRight(Right value) { this.right = value; } |
| 236 | 237 | |
| 238 | + @JsonProperty("s") | |
| 239 | + public S getS() { return s; } | |
| 240 | + @JsonProperty("s") | |
| 241 | + public void setS(S value) { this.s = value; } | |
| 242 | + | |
| 237 | 243 | @JsonProperty("sbyte") |
| 238 | 244 | public Sbyte getSbyte() { return sbyte; } |
| 239 | 245 | @JsonProperty("sbyte") |
Ajavadefault / src / main / java / io / quicktype / S.java+12 −0
| @@ -0,0 +1,12 @@ | ||
| 1 | +package io.quicktype; | |
| 2 | + | |
| 3 | +import com.fasterxml.jackson.annotation.*; | |
| 4 | + | |
| 5 | +public class S { | |
| 6 | + private long s; | |
| 7 | + | |
| 8 | + @JsonProperty("s") | |
| 9 | + public long getS() { return s; } | |
| 10 | + @JsonProperty("s") | |
| 11 | + public void setS(long value) { this.s = value; } | |
| 12 | +} |
Mjavascript-prop-typesdefault / toplevel.js+5 −0
| @@ -234,6 +234,7 @@ let _Retain; | ||
| 234 | 234 | let _Rethrows; |
| 235 | 235 | let _Return; |
| 236 | 236 | let _Right; |
| 237 | +let _S; | |
| 237 | 238 | let _Sbyte; |
| 238 | 239 | let _Sealed; |
| 239 | 240 | let _Select; |
| @@ -1150,6 +1151,9 @@ _Return = PropTypes.shape({ | ||
| 1150 | 1151 | _Right = PropTypes.shape({ |
| 1151 | 1152 | "right": PropTypes.oneOfType([Integer]).isRequired, |
| 1152 | 1153 | }); |
| 1154 | +_S = PropTypes.shape({ | |
| 1155 | + "s": PropTypes.oneOfType([Integer]).isRequired, | |
| 1156 | +}); | |
| 1153 | 1157 | _Sbyte = PropTypes.shape({ |
| 1154 | 1158 | "sbyte": PropTypes.oneOfType([Integer]).isRequired, |
| 1155 | 1159 | }); |
| @@ -1302,6 +1306,7 @@ _Obj4 = PropTypes.shape({ | ||
| 1302 | 1306 | "rethrows": _Rethrows, |
| 1303 | 1307 | "return": _Return, |
| 1304 | 1308 | "right": _Right, |
| 1309 | + "s": _S, | |
| 1305 | 1310 | "sbyte": _Sbyte, |
| 1306 | 1311 | "sealed": _Sealed, |
| 1307 | 1312 | "select": _Select, |
Mjavascriptdefault / TopLevel.js+4 −0
| @@ -1012,6 +1012,7 @@ const typeMap = { | ||
| 1012 | 1012 | { json: "rethrows", js: "rethrows", typ: r("Rethrows") }, |
| 1013 | 1013 | { json: "return", js: "return", typ: r("Return") }, |
| 1014 | 1014 | { json: "right", js: "right", typ: r("Right") }, |
| 1015 | + { json: "s", js: "s", typ: r("S") }, | |
| 1015 | 1016 | { json: "sbyte", js: "sbyte", typ: r("Sbyte") }, |
| 1016 | 1017 | { json: "sealed", js: "sealed", typ: r("Sealed") }, |
| 1017 | 1018 | { json: "select", js: "select", typ: r("Select") }, |
| @@ -1119,6 +1120,9 @@ const typeMap = { | ||
| 1119 | 1120 | "Right": o([ |
| 1120 | 1121 | { json: "right", js: "right", typ: i(0) }, |
| 1121 | 1122 | ], false), |
| 1123 | + "S": o([ | |
| 1124 | + { json: "s", js: "s", typ: i(0) }, | |
| 1125 | + ], false), | |
| 1122 | 1126 | "Sbyte": o([ |
| 1123 | 1127 | { json: "sbyte", js: "sbyte", typ: i(0) }, |
| 1124 | 1128 | ], false), |
Mkotlin-jacksondefault / TopLevel.kt+8 −0
| @@ -1705,6 +1705,9 @@ data class Obj4 ( | ||
| 1705 | 1705 | @get:JsonProperty(required=true)@field:JsonProperty(required=true) |
| 1706 | 1706 | val right: Right, |
| 1707 | 1707 | |
| 1708 | + @get:JsonProperty(required=true)@field:JsonProperty(required=true) | |
| 1709 | + val s: S, | |
| 1710 | + | |
| 1708 | 1711 | @get:JsonProperty(required=true)@field:JsonProperty(required=true) |
| 1709 | 1712 | val sbyte: Sbyte, |
| 1710 | 1713 | |
| @@ -1952,6 +1955,11 @@ data class Right ( | ||
| 1952 | 1955 | val right: Long |
| 1953 | 1956 | ) |
| 1954 | 1957 | |
| 1958 | +data class S ( | |
| 1959 | + @get:JsonProperty(required=true)@field:JsonProperty(required=true) | |
| 1960 | + val s: Long | |
| 1961 | +) | |
| 1962 | + | |
| 1955 | 1963 | data class Sbyte ( |
| 1956 | 1964 | @get:JsonProperty(required=true)@field:JsonProperty(required=true) |
| 1957 | 1965 | val sbyte: Long |
Mkotlindefault / TopLevel.kt+5 −0
| @@ -1247,6 +1247,7 @@ data class Obj4 ( | ||
| 1247 | 1247 | val retain: Retain, |
| 1248 | 1248 | val rethrows: Rethrows, |
| 1249 | 1249 | val right: Right, |
| 1250 | + val s: S, | |
| 1250 | 1251 | val sbyte: Sbyte, |
| 1251 | 1252 | val sealed: Sealed, |
| 1252 | 1253 | |
| @@ -1426,6 +1427,10 @@ data class Right ( | ||
| 1426 | 1427 | val right: Long |
| 1427 | 1428 | ) |
| 1428 | 1429 | |
| 1430 | +data class S ( | |
| 1431 | + val s: Long | |
| 1432 | +) | |
| 1433 | + | |
| 1429 | 1434 | data class Sbyte ( |
| 1430 | 1435 | val sbyte: Long |
| 1431 | 1436 | ) |
Mkotlinxdefault / TopLevel.kt+6 −0
| @@ -1443,6 +1443,7 @@ data class Obj4 ( | ||
| 1443 | 1443 | val retain: Retain, |
| 1444 | 1444 | val rethrows: Rethrows, |
| 1445 | 1445 | val right: Right, |
| 1446 | + val s: S, | |
| 1446 | 1447 | val sbyte: Sbyte, |
| 1447 | 1448 | val sealed: Sealed, |
| 1448 | 1449 | |
| @@ -1649,6 +1650,11 @@ data class Right ( | ||
| 1649 | 1650 | val right: Long |
| 1650 | 1651 | ) |
| 1651 | 1652 | |
| 1653 | +@Serializable | |
| 1654 | +data class S ( | |
| 1655 | + val s: Long | |
| 1656 | +) | |
| 1657 | + | |
| 1652 | 1658 | @Serializable |
| 1653 | 1659 | data class Sbyte ( |
| 1654 | 1660 | val sbyte: Long |
Mobjective-cdefault / QTTopLevel.h+6 −0
| @@ -233,6 +233,7 @@ | ||
| 233 | 233 | @class QTRequires; |
| 234 | 234 | @class QTRethrows; |
| 235 | 235 | @class QTRight; |
| 236 | +@class QTS; | |
| 236 | 237 | @class QTSbyte; |
| 237 | 238 | @class QTSealed; |
| 238 | 239 | @class QTSel; |
| @@ -1333,6 +1334,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en | ||
| 1333 | 1334 | @property (nonatomic, strong) QTRequires *requires; |
| 1334 | 1335 | @property (nonatomic, strong) QTRethrows *rethrows; |
| 1335 | 1336 | @property (nonatomic, strong) QTRight *right; |
| 1337 | +@property (nonatomic, strong) QTS *s; | |
| 1336 | 1338 | @property (nonatomic, strong) QTSbyte *sbyte; |
| 1337 | 1339 | @property (nonatomic, strong) QTSealed *sealed; |
| 1338 | 1340 | @property (nonatomic, strong) QTSel *sel; |
| @@ -1483,6 +1485,10 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en | ||
| 1483 | 1485 | @property (nonatomic, assign) NSInteger right; |
| 1484 | 1486 | @end |
| 1485 | 1487 | |
| 1488 | +@interface QTS : NSObject | |
| 1489 | +@property (nonatomic, assign) NSInteger s; | |
| 1490 | +@end | |
| 1491 | + | |
| 1486 | 1492 | @interface QTSbyte : NSObject |
| 1487 | 1493 | @property (nonatomic, assign) NSInteger sbyte; |
| 1488 | 1494 | @end |
Mobjective-cdefault / QTTopLevel.m+52 −0
| @@ -1148,6 +1148,11 @@ NS_ASSUME_NONNULL_BEGIN | ||
| 1148 | 1148 | - (NSDictionary *)JSONDictionary; |
| 1149 | 1149 | @end |
| 1150 | 1150 | |
| 1151 | +@interface QTS (JSONConversion) | |
| 1152 | ++ (instancetype)fromJSONDictionary:(NSDictionary *)dict; | |
| 1153 | +- (NSDictionary *)JSONDictionary; | |
| 1154 | +@end | |
| 1155 | + | |
| 1151 | 1156 | @interface QTSbyte (JSONConversion) |
| 1152 | 1157 | + (instancetype)fromJSONDictionary:(NSDictionary *)dict; |
| 1153 | 1158 | - (NSDictionary *)JSONDictionary; |
| @@ -11565,6 +11570,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco | ||
| 11565 | 11570 | @"requires": @"requires", |
| 11566 | 11571 | @"rethrows": @"rethrows", |
| 11567 | 11572 | @"right": @"right", |
| 11573 | + @"s": @"s", | |
| 11568 | 11574 | @"sbyte": @"sbyte", |
| 11569 | 11575 | @"sealed": @"sealed", |
| 11570 | 11576 | @"SEL": @"sel", |
| @@ -11642,6 +11648,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco | ||
| 11642 | 11648 | if (![dict[@"requires"] isKindOfClass:NSDictionary.class]) return nil; |
| 11643 | 11649 | if (![dict[@"rethrows"] isKindOfClass:NSDictionary.class]) return nil; |
| 11644 | 11650 | if (![dict[@"right"] isKindOfClass:NSDictionary.class]) return nil; |
| 11651 | + if (![dict[@"s"] isKindOfClass:NSDictionary.class]) return nil; | |
| 11645 | 11652 | if (![dict[@"sbyte"] isKindOfClass:NSDictionary.class]) return nil; |
| 11646 | 11653 | if (![dict[@"sealed"] isKindOfClass:NSDictionary.class]) return nil; |
| 11647 | 11654 | if (![dict[@"SEL"] isKindOfClass:NSDictionary.class]) return nil; |
| @@ -11735,6 +11742,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco | ||
| 11735 | 11742 | if (!_rethrows && dict[@"rethrows"] && ![dict[@"rethrows"] isKindOfClass:NSNull.class]) return nil; |
| 11736 | 11743 | _right = [QTRight fromJSONDictionary:(id)_right]; |
| 11737 | 11744 | if (!_right && dict[@"right"] && ![dict[@"right"] isKindOfClass:NSNull.class]) return nil; |
| 11745 | + _s = [QTS fromJSONDictionary:(id)_s]; | |
| 11746 | + if (!_s && dict[@"s"] && ![dict[@"s"] isKindOfClass:NSNull.class]) return nil; | |
| 11738 | 11747 | _sbyte = [QTSbyte fromJSONDictionary:(id)_sbyte]; |
| 11739 | 11748 | if (!_sbyte && dict[@"sbyte"] && ![dict[@"sbyte"] isKindOfClass:NSNull.class]) return nil; |
| 11740 | 11749 | _sealed = [QTSealed fromJSONDictionary:(id)_sealed]; |
| @@ -11864,6 +11873,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco | ||
| 11864 | 11873 | @"requires": [_requires JSONDictionary], |
| 11865 | 11874 | @"rethrows": [_rethrows JSONDictionary], |
| 11866 | 11875 | @"right": [_right JSONDictionary], |
| 11876 | + @"s": [_s JSONDictionary], | |
| 11867 | 11877 | @"sbyte": [_sbyte JSONDictionary], |
| 11868 | 11878 | @"sealed": [_sealed JSONDictionary], |
| 11869 | 11879 | @"SEL": [_sel JSONDictionary], |
| @@ -13222,6 +13232,48 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco | ||
| 13222 | 13232 | } |
| 13223 | 13233 | @end |
| 13224 | 13234 | |
| 13235 | +@implementation QTS | |
| 13236 | ++ (NSDictionary<NSString *, NSString *> *)properties | |
| 13237 | +{ | |
| 13238 | + static NSDictionary<NSString *, NSString *> *properties; | |
| 13239 | + return properties = properties ? properties : @{ | |
| 13240 | + @"s": @"s", | |
| 13241 | + }; | |
| 13242 | +} | |
| 13243 | + | |
| 13244 | ++ (instancetype)fromJSONDictionary:(NSDictionary *)dict | |
| 13245 | +{ | |
| 13246 | + return [dict isKindOfClass:NSDictionary.class] ? [[QTS alloc] initWithJSONDictionary:dict] : nil; | |
| 13247 | +} | |
| 13248 | + | |
| 13249 | +- (instancetype)initWithJSONDictionary:(NSDictionary *)dict | |
| 13250 | +{ | |
| 13251 | + if (self = [super init]) { | |
| 13252 | + if (![dict[@"s"] isKindOfClass:NSNumber.class]) return nil; | |
| 13253 | + if ([dict[@"s"] doubleValue] != [dict[@"s"] longLongValue]) return nil; | |
| 13254 | + [self setValuesForKeysWithDictionary:dict]; | |
| 13255 | + } | |
| 13256 | + return self; | |
| 13257 | +} | |
| 13258 | + | |
| 13259 | +- (void)setValue:(nullable id)value forKey:(NSString *)key | |
| 13260 | +{ | |
| 13261 | + id resolved = QTS.properties[key]; | |
| 13262 | + if (resolved) [super setValue:value forKey:resolved]; | |
| 13263 | +} | |
| 13264 | + | |
| 13265 | +- (void)setNilValueForKey:(NSString *)key | |
| 13266 | +{ | |
| 13267 | + id resolved = QTS.properties[key]; | |
| 13268 | + if (resolved) [super setValue:@(0) forKey:resolved]; | |
| 13269 | +} | |
| 13270 | + | |
| 13271 | +- (NSDictionary *)JSONDictionary | |
| 13272 | +{ | |
| 13273 | + return [self dictionaryWithValuesForKeys:QTS.properties.allValues]; | |
| 13274 | +} | |
| 13275 | +@end | |
| 13276 | + | |
| 13225 | 13277 | @implementation QTSbyte |
| 13226 | 13278 | + (NSDictionary<NSString *, NSString *> *)properties |
| 13227 | 13279 | { |
Mphpdefault / TopLevel.php+203 −44
| @@ -31725,6 +31725,7 @@ class Obj4 { | ||
| 31725 | 31725 | private Rethrows $rethrows; // json:rethrows Required |
| 31726 | 31726 | private ReturnClass $return; // json:return Required |
| 31727 | 31727 | private Right $right; // json:right Required |
| 31728 | + private S $s; // json:s Required | |
| 31728 | 31729 | private Sbyte $sbyte; // json:sbyte Required |
| 31729 | 31730 | private Sealed $sealed; // json:sealed Required |
| 31730 | 31731 | private Sel $sel; // json:SEL Required |
| @@ -31792,6 +31793,7 @@ class Obj4 { | ||
| 31792 | 31793 | * @param Rethrows $rethrows |
| 31793 | 31794 | * @param ReturnClass $return |
| 31794 | 31795 | * @param Right $right |
| 31796 | + * @param S $s | |
| 31795 | 31797 | * @param Sbyte $sbyte |
| 31796 | 31798 | * @param Sealed $sealed |
| 31797 | 31799 | * @param Sel $sel |
| @@ -31836,7 +31838,7 @@ class Obj4 { | ||
| 31836 | 31838 | * @param Unchecked $unchecked |
| 31837 | 31839 | * @param Undefined $undefined |
| 31838 | 31840 | */ |
| 31839 | - public function __construct(int $dummy, Obj4Self $obj4Self, This $obj4This, Obj4True $obj4True, TypeClass $obj4Type, PublicClass $public, Quicktype $quicktype, Raise $raise, Range $range, ReadonlyClass $readonly, Ref $ref, Register $register, ReinterpretCast $reinterpretCast, Repeat $repeat, RequireClass $require, Required $required, Requires $requires, Restrict $restrict, Retain $retain, Rethrows $rethrows, ReturnClass $return, Right $right, Sbyte $sbyte, Sealed $sealed, Sel $sel, Select $select, SelfClass $self, Serialize $serialize, Set $set, Short $short, Signed $signed, Sizeof $sizeof, Stackalloc $stackalloc, StaticClass $static, StaticAssert $staticAssert, StaticCast $staticCast, Strictfp $strictfp, StringClass $string, Struct $struct, Subscript $subscript, Super $super, SwitchClass $switch, Symbol $symbol, Synchronized $synchronized, System $system, Template $template, Then $then, ThreadLocal $threadLocal, ThrowClass $throw, Throws $throws, ToJSON $toJSON, TopLevelClass $topLevel, Transient $transient, TrueClass $true, TryClass $try, Type $type, Typealias $typealias, Typedef $typedef, Typeid $typeid, Typename $typename, Typeof $typeof, Uint $uint, Ulong $ulong, Unchecked $unchecked, Undefined $undefined) { | |
| 31841 | + public function __construct(int $dummy, Obj4Self $obj4Self, This $obj4This, Obj4True $obj4True, TypeClass $obj4Type, PublicClass $public, Quicktype $quicktype, Raise $raise, Range $range, ReadonlyClass $readonly, Ref $ref, Register $register, ReinterpretCast $reinterpretCast, Repeat $repeat, RequireClass $require, Required $required, Requires $requires, Restrict $restrict, Retain $retain, Rethrows $rethrows, ReturnClass $return, Right $right, S $s, Sbyte $sbyte, Sealed $sealed, Sel $sel, Select $select, SelfClass $self, Serialize $serialize, Set $set, Short $short, Signed $signed, Sizeof $sizeof, Stackalloc $stackalloc, StaticClass $static, StaticAssert $staticAssert, StaticCast $staticCast, Strictfp $strictfp, StringClass $string, Struct $struct, Subscript $subscript, Super $super, SwitchClass $switch, Symbol $symbol, Synchronized $synchronized, System $system, Template $template, Then $then, ThreadLocal $threadLocal, ThrowClass $throw, Throws $throws, ToJSON $toJSON, TopLevelClass $topLevel, Transient $transient, TrueClass $true, TryClass $try, Type $type, Typealias $typealias, Typedef $typedef, Typeid $typeid, Typename $typename, Typeof $typeof, Uint $uint, Ulong $ulong, Unchecked $unchecked, Undefined $undefined) { | |
| 31840 | 31842 | $this->dummy = $dummy; |
| 31841 | 31843 | $this->obj4Self = $obj4Self; |
| 31842 | 31844 | $this->obj4This = $obj4This; |
| @@ -31859,6 +31861,7 @@ class Obj4 { | ||
| 31859 | 31861 | $this->rethrows = $rethrows; |
| 31860 | 31862 | $this->return = $return; |
| 31861 | 31863 | $this->right = $right; |
| 31864 | + $this->s = $s; | |
| 31862 | 31865 | $this->sbyte = $sbyte; |
| 31863 | 31866 | $this->sealed = $sealed; |
| 31864 | 31867 | $this->sel = $sel; |
| @@ -32959,6 +32962,54 @@ class Obj4 { | ||
| 32959 | 32962 | return Right::sample(); /*52:right*/ |
| 32960 | 32963 | } |
| 32961 | 32964 | |
| 32965 | + /** | |
| 32966 | + * @param stdClass $value | |
| 32967 | + * @throws Exception | |
| 32968 | + * @return S | |
| 32969 | + */ | |
| 32970 | + public static function fromS(stdClass $value): S { | |
| 32971 | + return S::from($value); /*class*/ | |
| 32972 | + } | |
| 32973 | + | |
| 32974 | + /** | |
| 32975 | + * @throws Exception | |
| 32976 | + * @return stdClass | |
| 32977 | + */ | |
| 32978 | + public function toS(): stdClass { | |
| 32979 | + if (Obj4::validateS($this->s)) { | |
| 32980 | + return $this->s->to(); /*class*/ | |
| 32981 | + } | |
| 32982 | + throw new Exception('never get to this Obj4::s'); | |
| 32983 | + } | |
| 32984 | + | |
| 32985 | + /** | |
| 32986 | + * @param S | |
| 32987 | + * @return bool | |
| 32988 | + * @throws Exception | |
| 32989 | + */ | |
| 32990 | + public static function validateS(S $value): bool { | |
| 32991 | + $value->validate(); | |
| 32992 | + return true; | |
| 32993 | + } | |
| 32994 | + | |
| 32995 | + /** | |
| 32996 | + * @throws Exception | |
| 32997 | + * @return S | |
| 32998 | + */ | |
| 32999 | + public function getS(): S { | |
| 33000 | + if (Obj4::validateS($this->s)) { | |
| 33001 | + return $this->s; | |
| 33002 | + } | |
| 33003 | + throw new Exception('never get to getS Obj4::s'); | |
| 33004 | + } | |
| 33005 | + | |
| 33006 | + /** | |
| 33007 | + * @return S | |
| 33008 | + */ | |
| 33009 | + public static function sampleS(): S { | |
| 33010 | + return S::sample(); /*53:s*/ | |
| 33011 | + } | |
| 33012 | + | |
| 32962 | 33013 | /** |
| 32963 | 33014 | * @param stdClass $value |
| 32964 | 33015 | * @throws Exception |
| @@ -33004,7 +33055,7 @@ class Obj4 { | ||
| 33004 | 33055 | * @return Sbyte |
| 33005 | 33056 | */ |
| 33006 | 33057 | public static function sampleSbyte(): Sbyte { |
| 33007 | - return Sbyte::sample(); /*53:sbyte*/ | |
| 33058 | + return Sbyte::sample(); /*54:sbyte*/ | |
| 33008 | 33059 | } |
| 33009 | 33060 | |
| 33010 | 33061 | /** |
| @@ -33052,7 +33103,7 @@ class Obj4 { | ||
| 33052 | 33103 | * @return Sealed |
| 33053 | 33104 | */ |
| 33054 | 33105 | public static function sampleSealed(): Sealed { |
| 33055 | - return Sealed::sample(); /*54:sealed*/ | |
| 33106 | + return Sealed::sample(); /*55:sealed*/ | |
| 33056 | 33107 | } |
| 33057 | 33108 | |
| 33058 | 33109 | /** |
| @@ -33100,7 +33151,7 @@ class Obj4 { | ||
| 33100 | 33151 | * @return Sel |
| 33101 | 33152 | */ |
| 33102 | 33153 | public static function sampleSel(): Sel { |
| 33103 | - return Sel::sample(); /*55:sel*/ | |
| 33154 | + return Sel::sample(); /*56:sel*/ | |
| 33104 | 33155 | } |
| 33105 | 33156 | |
| 33106 | 33157 | /** |
| @@ -33148,7 +33199,7 @@ class Obj4 { | ||
| 33148 | 33199 | * @return Select |
| 33149 | 33200 | */ |
| 33150 | 33201 | public static function sampleSelect(): Select { |
| 33151 | - return Select::sample(); /*56:select*/ | |
| 33202 | + return Select::sample(); /*57:select*/ | |
| 33152 | 33203 | } |
| 33153 | 33204 | |
| 33154 | 33205 | /** |
| @@ -33196,7 +33247,7 @@ class Obj4 { | ||
| 33196 | 33247 | * @return SelfClass |
| 33197 | 33248 | */ |
| 33198 | 33249 | public static function sampleSelf(): SelfClass { |
| 33199 | - return SelfClass::sample(); /*57:self*/ | |
| 33250 | + return SelfClass::sample(); /*58:self*/ | |
| 33200 | 33251 | } |
| 33201 | 33252 | |
| 33202 | 33253 | /** |
| @@ -33244,7 +33295,7 @@ class Obj4 { | ||
| 33244 | 33295 | * @return Serialize |
| 33245 | 33296 | */ |
| 33246 | 33297 | public static function sampleSerialize(): Serialize { |
| 33247 | - return Serialize::sample(); /*58:serialize*/ | |
| 33298 | + return Serialize::sample(); /*59:serialize*/ | |
| 33248 | 33299 | } |
| 33249 | 33300 | |
| 33250 | 33301 | /** |
| @@ -33292,7 +33343,7 @@ class Obj4 { | ||
| 33292 | 33343 | * @return Set |
| 33293 | 33344 | */ |
| 33294 | 33345 | public static function sampleSet(): Set { |
| 33295 | - return Set::sample(); /*59:set*/ | |
| 33346 | + return Set::sample(); /*60:set*/ | |
| 33296 | 33347 | } |
| 33297 | 33348 | |
| 33298 | 33349 | /** |
| @@ -33340,7 +33391,7 @@ class Obj4 { | ||
| 33340 | 33391 | * @return Short |
| 33341 | 33392 | */ |
| 33342 | 33393 | public static function sampleShort(): Short { |
| 33343 | - return Short::sample(); /*60:short*/ | |
| 33394 | + return Short::sample(); /*61:short*/ | |
| 33344 | 33395 | } |
| 33345 | 33396 | |
| 33346 | 33397 | /** |
| @@ -33388,7 +33439,7 @@ class Obj4 { | ||
| 33388 | 33439 | * @return Signed |
| 33389 | 33440 | */ |
| 33390 | 33441 | public static function sampleSigned(): Signed { |
| 33391 | - return Signed::sample(); /*61:signed*/ | |
| 33442 | + return Signed::sample(); /*62:signed*/ | |
| 33392 | 33443 | } |
| 33393 | 33444 | |
| 33394 | 33445 | /** |
| @@ -33436,7 +33487,7 @@ class Obj4 { | ||
| 33436 | 33487 | * @return Sizeof |
| 33437 | 33488 | */ |
| 33438 | 33489 | public static function sampleSizeof(): Sizeof { |
| 33439 | - return Sizeof::sample(); /*62:sizeof*/ | |
| 33490 | + return Sizeof::sample(); /*63:sizeof*/ | |
| 33440 | 33491 | } |
| 33441 | 33492 | |
| 33442 | 33493 | /** |
| @@ -33484,7 +33535,7 @@ class Obj4 { | ||
| 33484 | 33535 | * @return Stackalloc |
| 33485 | 33536 | */ |
| 33486 | 33537 | public static function sampleStackalloc(): Stackalloc { |
| 33487 | - return Stackalloc::sample(); /*63:stackalloc*/ | |
| 33538 | + return Stackalloc::sample(); /*64:stackalloc*/ | |
| 33488 | 33539 | } |
| 33489 | 33540 | |
| 33490 | 33541 | /** |
| @@ -33532,7 +33583,7 @@ class Obj4 { | ||
| 33532 | 33583 | * @return StaticClass |
| 33533 | 33584 | */ |
| 33534 | 33585 | public static function sampleStatic(): StaticClass { |
| 33535 | - return StaticClass::sample(); /*64:static*/ | |
| 33586 | + return StaticClass::sample(); /*65:static*/ | |
| 33536 | 33587 | } |
| 33537 | 33588 | |
| 33538 | 33589 | /** |
| @@ -33580,7 +33631,7 @@ class Obj4 { | ||
| 33580 | 33631 | * @return StaticAssert |
| 33581 | 33632 | */ |
| 33582 | 33633 | public static function sampleStaticAssert(): StaticAssert { |
| 33583 | - return StaticAssert::sample(); /*65:staticAssert*/ | |
| 33634 | + return StaticAssert::sample(); /*66:staticAssert*/ | |
| 33584 | 33635 | } |
| 33585 | 33636 | |
| 33586 | 33637 | /** |
| @@ -33628,7 +33679,7 @@ class Obj4 { | ||
| 33628 | 33679 | * @return StaticCast |
| 33629 | 33680 | */ |
| 33630 | 33681 | public static function sampleStaticCast(): StaticCast { |
| 33631 | - return StaticCast::sample(); /*66:staticCast*/ | |
| 33682 | + return StaticCast::sample(); /*67:staticCast*/ | |
| 33632 | 33683 | } |
| 33633 | 33684 | |
| 33634 | 33685 | /** |
| @@ -33676,7 +33727,7 @@ class Obj4 { | ||
| 33676 | 33727 | * @return Strictfp |
| 33677 | 33728 | */ |
| 33678 | 33729 | public static function sampleStrictfp(): Strictfp { |
| 33679 | - return Strictfp::sample(); /*67:strictfp*/ | |
| 33730 | + return Strictfp::sample(); /*68:strictfp*/ | |
| 33680 | 33731 | } |
| 33681 | 33732 | |
| 33682 | 33733 | /** |
| @@ -33724,7 +33775,7 @@ class Obj4 { | ||
| 33724 | 33775 | * @return StringClass |
| 33725 | 33776 | */ |
| 33726 | 33777 | public static function sampleString(): StringClass { |
| 33727 | - return StringClass::sample(); /*68:string*/ | |
| 33778 | + return StringClass::sample(); /*69:string*/ | |
| 33728 | 33779 | } |
| 33729 | 33780 | |
| 33730 | 33781 | /** |
| @@ -33772,7 +33823,7 @@ class Obj4 { | ||
| 33772 | 33823 | * @return Struct |
| 33773 | 33824 | */ |
| 33774 | 33825 | public static function sampleStruct(): Struct { |
| 33775 | - return Struct::sample(); /*69:struct*/ | |
| 33826 | + return Struct::sample(); /*70:struct*/ | |
| 33776 | 33827 | } |
| 33777 | 33828 | |
| 33778 | 33829 | /** |
| @@ -33820,7 +33871,7 @@ class Obj4 { | ||
| 33820 | 33871 | * @return Subscript |
| 33821 | 33872 | */ |
| 33822 | 33873 | public static function sampleSubscript(): Subscript { |
| 33823 | - return Subscript::sample(); /*70:subscript*/ | |
| 33874 | + return Subscript::sample(); /*71:subscript*/ | |
| 33824 | 33875 | } |
| 33825 | 33876 | |
| 33826 | 33877 | /** |
| @@ -33868,7 +33919,7 @@ class Obj4 { | ||
| 33868 | 33919 | * @return Super |
| 33869 | 33920 | */ |
| 33870 | 33921 | public static function sampleSuper(): Super { |
| 33871 | - return Super::sample(); /*71:super*/ | |
| 33922 | + return Super::sample(); /*72:super*/ | |
| 33872 | 33923 | } |
| 33873 | 33924 | |
| 33874 | 33925 | /** |
| @@ -33916,7 +33967,7 @@ class Obj4 { | ||
| 33916 | 33967 | * @return SwitchClass |
| 33917 | 33968 | */ |
| 33918 | 33969 | public static function sampleSwitch(): SwitchClass { |
| 33919 | - return SwitchClass::sample(); /*72:switch*/ | |
| 33970 | + return SwitchClass::sample(); /*73:switch*/ | |
| 33920 | 33971 | } |
| 33921 | 33972 | |
| 33922 | 33973 | /** |
| @@ -33964,7 +34015,7 @@ class Obj4 { | ||
| 33964 | 34015 | * @return Symbol |
| 33965 | 34016 | */ |
| 33966 | 34017 | public static function sampleSymbol(): Symbol { |
| 33967 | - return Symbol::sample(); /*73:symbol*/ | |
| 34018 | + return Symbol::sample(); /*74:symbol*/ | |
| 33968 | 34019 | } |
| 33969 | 34020 | |
| 33970 | 34021 | /** |
| @@ -34012,7 +34063,7 @@ class Obj4 { | ||
| 34012 | 34063 | * @return Synchronized |
| 34013 | 34064 | */ |
| 34014 | 34065 | public static function sampleSynchronized(): Synchronized { |
| 34015 | - return Synchronized::sample(); /*74:synchronized*/ | |
| 34066 | + return Synchronized::sample(); /*75:synchronized*/ | |
| 34016 | 34067 | } |
| 34017 | 34068 | |
| 34018 | 34069 | /** |
| @@ -34060,7 +34111,7 @@ class Obj4 { | ||
| 34060 | 34111 | * @return System |
| 34061 | 34112 | */ |
| 34062 | 34113 | public static function sampleSystem(): System { |
| 34063 | - return System::sample(); /*75:system*/ | |
| 34114 | + return System::sample(); /*76:system*/ | |
| 34064 | 34115 | } |
| 34065 | 34116 | |
| 34066 | 34117 | /** |
| @@ -34108,7 +34159,7 @@ class Obj4 { | ||
| 34108 | 34159 | * @return Template |
| 34109 | 34160 | */ |
| 34110 | 34161 | public static function sampleTemplate(): Template { |
| 34111 | - return Template::sample(); /*76:template*/ | |
| 34162 | + return Template::sample(); /*77:template*/ | |
| 34112 | 34163 | } |
| 34113 | 34164 | |
| 34114 | 34165 | /** |
| @@ -34156,7 +34207,7 @@ class Obj4 { | ||
| 34156 | 34207 | * @return Then |
| 34157 | 34208 | */ |
| 34158 | 34209 | public static function sampleThen(): Then { |
| 34159 | - return Then::sample(); /*77:then*/ | |
| 34210 | + return Then::sample(); /*78:then*/ | |
| 34160 | 34211 | } |
| 34161 | 34212 | |
| 34162 | 34213 | /** |
| @@ -34204,7 +34255,7 @@ class Obj4 { | ||
| 34204 | 34255 | * @return ThreadLocal |
| 34205 | 34256 | */ |
| 34206 | 34257 | public static function sampleThreadLocal(): ThreadLocal { |
| 34207 | - return ThreadLocal::sample(); /*78:threadLocal*/ | |
| 34258 | + return ThreadLocal::sample(); /*79:threadLocal*/ | |
| 34208 | 34259 | } |
| 34209 | 34260 | |
| 34210 | 34261 | /** |
| @@ -34252,7 +34303,7 @@ class Obj4 { | ||
| 34252 | 34303 | * @return ThrowClass |
| 34253 | 34304 | */ |
| 34254 | 34305 | public static function sampleThrow(): ThrowClass { |
| 34255 | - return ThrowClass::sample(); /*79:throw*/ | |
| 34306 | + return ThrowClass::sample(); /*80:throw*/ | |
| 34256 | 34307 | } |
| 34257 | 34308 | |
| 34258 | 34309 | /** |
| @@ -34300,7 +34351,7 @@ class Obj4 { | ||
| 34300 | 34351 | * @return Throws |
| 34301 | 34352 | */ |
| 34302 | 34353 | public static function sampleThrows(): Throws { |
| 34303 | - return Throws::sample(); /*80:throws*/ | |
| 34354 | + return Throws::sample(); /*81:throws*/ | |
| 34304 | 34355 | } |
| 34305 | 34356 | |
| 34306 | 34357 | /** |
| @@ -34348,7 +34399,7 @@ class Obj4 { | ||
| 34348 | 34399 | * @return ToJSON |
| 34349 | 34400 | */ |
| 34350 | 34401 | public static function sampleToJSON(): ToJSON { |
| 34351 | - return ToJSON::sample(); /*81:toJSON*/ | |
| 34402 | + return ToJSON::sample(); /*82:toJSON*/ | |
| 34352 | 34403 | } |
| 34353 | 34404 | |
| 34354 | 34405 | /** |
| @@ -34396,7 +34447,7 @@ class Obj4 { | ||
| 34396 | 34447 | * @return TopLevelClass |
| 34397 | 34448 | */ |
| 34398 | 34449 | public static function sampleTopLevel(): TopLevelClass { |
| 34399 | - return TopLevelClass::sample(); /*82:topLevel*/ | |
| 34450 | + return TopLevelClass::sample(); /*83:topLevel*/ | |
| 34400 | 34451 | } |
| 34401 | 34452 | |
| 34402 | 34453 | /** |
| @@ -34444,7 +34495,7 @@ class Obj4 { | ||
| 34444 | 34495 | * @return Transient |
| 34445 | 34496 | */ |
| 34446 | 34497 | public static function sampleTransient(): Transient { |
| 34447 | - return Transient::sample(); /*83:transient*/ | |
| 34498 | + return Transient::sample(); /*84:transient*/ | |
| 34448 | 34499 | } |
| 34449 | 34500 | |
| 34450 | 34501 | /** |
| @@ -34492,7 +34543,7 @@ class Obj4 { | ||
| 34492 | 34543 | * @return TrueClass |
| 34493 | 34544 | */ |
| 34494 | 34545 | public static function sampleTrue(): TrueClass { |
| 34495 | - return TrueClass::sample(); /*84:true*/ | |
| 34546 | + return TrueClass::sample(); /*85:true*/ | |
| 34496 | 34547 | } |
| 34497 | 34548 | |
| 34498 | 34549 | /** |
| @@ -34540,7 +34591,7 @@ class Obj4 { | ||
| 34540 | 34591 | * @return TryClass |
| 34541 | 34592 | */ |
| 34542 | 34593 | public static function sampleTry(): TryClass { |
| 34543 | - return TryClass::sample(); /*85:try*/ | |
| 34594 | + return TryClass::sample(); /*86:try*/ | |
| 34544 | 34595 | } |
| 34545 | 34596 | |
| 34546 | 34597 | /** |
| @@ -34588,7 +34639,7 @@ class Obj4 { | ||
| 34588 | 34639 | * @return Type |
| 34589 | 34640 | */ |
| 34590 | 34641 | public static function sampleType(): Type { |
| 34591 | - return Type::sample(); /*86:type*/ | |
| 34642 | + return Type::sample(); /*87:type*/ | |
| 34592 | 34643 | } |
| 34593 | 34644 | |
| 34594 | 34645 | /** |
| @@ -34636,7 +34687,7 @@ class Obj4 { | ||
| 34636 | 34687 | * @return Typealias |
| 34637 | 34688 | */ |
| 34638 | 34689 | public static function sampleTypealias(): Typealias { |
| 34639 | - return Typealias::sample(); /*87:typealias*/ | |
| 34690 | + return Typealias::sample(); /*88:typealias*/ | |
| 34640 | 34691 | } |
| 34641 | 34692 | |
| 34642 | 34693 | /** |
| @@ -34684,7 +34735,7 @@ class Obj4 { | ||
| 34684 | 34735 | * @return Typedef |
| 34685 | 34736 | */ |
| 34686 | 34737 | public static function sampleTypedef(): Typedef { |
| 34687 | - return Typedef::sample(); /*88:typedef*/ | |
| 34738 | + return Typedef::sample(); /*89:typedef*/ | |
| 34688 | 34739 | } |
| 34689 | 34740 | |
| 34690 | 34741 | /** |
| @@ -34732,7 +34783,7 @@ class Obj4 { | ||
| 34732 | 34783 | * @return Typeid |
| 34733 | 34784 | */ |
| 34734 | 34785 | public static function sampleTypeid(): Typeid { |
| 34735 | - return Typeid::sample(); /*89:typeid*/ | |
| 34786 | + return Typeid::sample(); /*90:typeid*/ | |
| 34736 | 34787 | } |
| 34737 | 34788 | |
| 34738 | 34789 | /** |
| @@ -34780,7 +34831,7 @@ class Obj4 { | ||
| 34780 | 34831 | * @return Typename |
| 34781 | 34832 | */ |
| 34782 | 34833 | public static function sampleTypename(): Typename { |
| 34783 | - return Typename::sample(); /*90:typename*/ | |
| 34834 | + return Typename::sample(); /*91:typename*/ | |
| 34784 | 34835 | } |
| 34785 | 34836 | |
| 34786 | 34837 | /** |
| @@ -34828,7 +34879,7 @@ class Obj4 { | ||
| 34828 | 34879 | * @return Typeof |
| 34829 | 34880 | */ |
| 34830 | 34881 | public static function sampleTypeof(): Typeof { |
| 34831 | - return Typeof::sample(); /*91:typeof*/ | |
| 34882 | + return Typeof::sample(); /*92:typeof*/ | |
| 34832 | 34883 | } |
| 34833 | 34884 | |
| 34834 | 34885 | /** |
| @@ -34876,7 +34927,7 @@ class Obj4 { | ||
| 34876 | 34927 | * @return Uint |
| 34877 | 34928 | */ |
| 34878 | 34929 | public static function sampleUint(): Uint { |
| 34879 | - return Uint::sample(); /*92:uint*/ | |
| 34930 | + return Uint::sample(); /*93:uint*/ | |
| 34880 | 34931 | } |
| 34881 | 34932 | |
| 34882 | 34933 | /** |
| @@ -34924,7 +34975,7 @@ class Obj4 { | ||
| 34924 | 34975 | * @return Ulong |
| 34925 | 34976 | */ |
| 34926 | 34977 | public static function sampleUlong(): Ulong { |
| 34927 | - return Ulong::sample(); /*93:ulong*/ | |
| 34978 | + return Ulong::sample(); /*94:ulong*/ | |
| 34928 | 34979 | } |
| 34929 | 34980 | |
| 34930 | 34981 | /** |
| @@ -34972,7 +35023,7 @@ class Obj4 { | ||
| 34972 | 35023 | * @return Unchecked |
| 34973 | 35024 | */ |
| 34974 | 35025 | public static function sampleUnchecked(): Unchecked { |
| 34975 | - return Unchecked::sample(); /*94:unchecked*/ | |
| 35026 | + return Unchecked::sample(); /*95:unchecked*/ | |
| 34976 | 35027 | } |
| 34977 | 35028 | |
| 34978 | 35029 | /** |
| @@ -35020,7 +35071,7 @@ class Obj4 { | ||
| 35020 | 35071 | * @return Undefined |
| 35021 | 35072 | */ |
| 35022 | 35073 | public static function sampleUndefined(): Undefined { |
| 35023 | - return Undefined::sample(); /*95:undefined*/ | |
| 35074 | + return Undefined::sample(); /*96:undefined*/ | |
| 35024 | 35075 | } |
| 35025 | 35076 | |
| 35026 | 35077 | /** |
| @@ -35050,6 +35101,7 @@ class Obj4 { | ||
| 35050 | 35101 | || Obj4::validateRethrows($this->rethrows) |
| 35051 | 35102 | || Obj4::validateReturn($this->return) |
| 35052 | 35103 | || Obj4::validateRight($this->right) |
| 35104 | + || Obj4::validateS($this->s) | |
| 35053 | 35105 | || Obj4::validateSbyte($this->sbyte) |
| 35054 | 35106 | || Obj4::validateSealed($this->sealed) |
| 35055 | 35107 | || Obj4::validateSel($this->sel) |
| @@ -35123,6 +35175,7 @@ class Obj4 { | ||
| 35123 | 35175 | $out->{'rethrows'} = $this->toRethrows(); |
| 35124 | 35176 | $out->{'return'} = $this->toReturn(); |
| 35125 | 35177 | $out->{'right'} = $this->toRight(); |
| 35178 | + $out->{'s'} = $this->toS(); | |
| 35126 | 35179 | $out->{'sbyte'} = $this->toSbyte(); |
| 35127 | 35180 | $out->{'sealed'} = $this->toSealed(); |
| 35128 | 35181 | $out->{'SEL'} = $this->toSel(); |
| @@ -35241,6 +35294,9 @@ class Obj4 { | ||
| 35241 | 35294 | if (!property_exists($obj, 'right')) { |
| 35242 | 35295 | throw new Exception("Missing required property"); |
| 35243 | 35296 | } |
| 35297 | + if (!property_exists($obj, 's')) { | |
| 35298 | + throw new Exception("Missing required property"); | |
| 35299 | + } | |
| 35244 | 35300 | if (!property_exists($obj, 'sbyte')) { |
| 35245 | 35301 | throw new Exception("Missing required property"); |
| 35246 | 35302 | } |
| @@ -35393,6 +35449,7 @@ class Obj4 { | ||
| 35393 | 35449 | ,Obj4::fromRethrows($obj->{'rethrows'}) |
| 35394 | 35450 | ,Obj4::fromReturn($obj->{'return'}) |
| 35395 | 35451 | ,Obj4::fromRight($obj->{'right'}) |
| 35452 | + ,Obj4::fromS($obj->{'s'}) | |
| 35396 | 35453 | ,Obj4::fromSbyte($obj->{'sbyte'}) |
| 35397 | 35454 | ,Obj4::fromSealed($obj->{'sealed'}) |
| 35398 | 35455 | ,Obj4::fromSel($obj->{'SEL'}) |
| @@ -35466,6 +35523,7 @@ class Obj4 { | ||
| 35466 | 35523 | ,Obj4::sampleRethrows() |
| 35467 | 35524 | ,Obj4::sampleReturn() |
| 35468 | 35525 | ,Obj4::sampleRight() |
| 35526 | + ,Obj4::sampleS() | |
| 35469 | 35527 | ,Obj4::sampleSbyte() |
| 35470 | 35528 | ,Obj4::sampleSealed() |
| 35471 | 35529 | ,Obj4::sampleSel() |
| @@ -37634,6 +37692,107 @@ class Right { | ||
| 37634 | 37692 | } |
| 37635 | 37693 | } |
| 37636 | 37694 | |
| 37695 | +// This is an autogenerated file:S | |
| 37696 | + | |
| 37697 | +class S { | |
| 37698 | + private int $s; // json:s Required | |
| 37699 | + | |
| 37700 | + /** | |
| 37701 | + * @param int $s | |
| 37702 | + */ | |
| 37703 | + public function __construct(int $s) { | |
| 37704 | + $this->s = $s; | |
| 37705 | + } | |
| 37706 | + | |
| 37707 | + /** | |
| 37708 | + * @param int $value | |
| 37709 | + * @throws Exception | |
| 37710 | + * @return int | |
| 37711 | + */ | |
| 37712 | + public static function fromS(int $value): int { | |
| 37713 | + return $value; /*int*/ | |
| 37714 | + } | |
| 37715 | + | |
| 37716 | + /** | |
| 37717 | + * @throws Exception | |
| 37718 | + * @return int | |
| 37719 | + */ | |
| 37720 | + public function toS(): int { | |
| 37721 | + if (S::validateS($this->s)) { | |
| 37722 | + return $this->s; /*int*/ | |
| 37723 | + } | |
| 37724 | + throw new Exception('never get to this S::s'); | |
| 37725 | + } | |
| 37726 | + | |
| 37727 | + /** | |
| 37728 | + * @param int | |
| 37729 | + * @return bool | |
| 37730 | + * @throws Exception | |
| 37731 | + */ | |
| 37732 | + public static function validateS(int $value): bool { | |
| 37733 | + return true; | |
| 37734 | + } | |
| 37735 | + | |
| 37736 | + /** | |
| 37737 | + * @throws Exception | |
| 37738 | + * @return int | |
| 37739 | + */ | |
| 37740 | + public function getS(): int { | |
| 37741 | + if (S::validateS($this->s)) { | |
| 37742 | + return $this->s; | |
| 37743 | + } | |
| 37744 | + throw new Exception('never get to getS S::s'); | |
| 37745 | + } | |
| 37746 | + | |
| 37747 | + /** | |
| 37748 | + * @return int | |
| 37749 | + */ | |
| 37750 | + public static function sampleS(): int { | |
| 37751 | + return 31; /*31:s*/ | |
| 37752 | + } | |
| 37753 | + | |
| 37754 | + /** | |
| 37755 | + * @throws Exception | |
| 37756 | + * @return bool | |
| 37757 | + */ | |
| 37758 | + public function validate(): bool { | |
| 37759 | + return S::validateS($this->s); | |
| 37760 | + } | |
| 37761 | + | |
| 37762 | + /** | |
| 37763 | + * @return stdClass | |
| 37764 | + * @throws Exception | |
| 37765 | + */ | |
| 37766 | + public function to(): stdClass { | |
| 37767 | + $out = new stdClass(); | |
| 37768 | + $out->{'s'} = $this->toS(); | |
| 37769 | + return $out; | |
| 37770 | + } | |
| 37771 | + | |
| 37772 | + /** | |
| 37773 | + * @param stdClass $obj | |
| 37774 | + * @return S | |
| 37775 | + * @throws Exception | |
| 37776 | + */ | |
| 37777 | + public static function from(stdClass $obj): S { | |
| 37778 | + if (!property_exists($obj, 's')) { | |
| 37779 | + throw new Exception("Missing required property"); | |
| 37780 | + } | |
| 37781 | + return new S( | |
| 37782 | + S::fromS($obj->{'s'}) | |
| 37783 | + ); | |
| 37784 | + } | |
| 37785 | + | |
| 37786 | + /** | |
| 37787 | + * @return S | |
| 37788 | + */ | |
| 37789 | + public static function sample(): S { | |
| 37790 | + return new S( | |
| 37791 | + S::sampleS() | |
| 37792 | + ); | |
| 37793 | + } | |
| 37794 | +} | |
| 37795 | + | |
| 37637 | 37796 | // This is an autogenerated file:Sbyte |
| 37638 | 37797 | |
| 37639 | 37798 | class Sbyte { |
Mpikedefault / TopLevel.pmod+24 −0
| @@ -4818,6 +4818,7 @@ class Obj4 { | ||
| 4818 | 4818 | Retain retain; // json: "retain" |
| 4819 | 4819 | Rethrows rethrows; // json: "rethrows" |
| 4820 | 4820 | Right right; // json: "right" |
| 4821 | + S s; // json: "s" | |
| 4821 | 4822 | Sbyte sbyte; // json: "sbyte" |
| 4822 | 4823 | Sealed sealed; // json: "sealed" |
| 4823 | 4824 | Sel sel; // json: "SEL" |
| @@ -4886,6 +4887,7 @@ class Obj4 { | ||
| 4886 | 4887 | "retain" : retain, |
| 4887 | 4888 | "rethrows" : rethrows, |
| 4888 | 4889 | "right" : right, |
| 4890 | + "s" : s, | |
| 4889 | 4891 | "sbyte" : sbyte, |
| 4890 | 4892 | "sealed" : sealed, |
| 4891 | 4893 | "SEL" : sel, |
| @@ -4961,6 +4963,7 @@ Obj4 Obj4_from_JSON(mixed json) { | ||
| 4961 | 4963 | retval.retain = json["retain"]; |
| 4962 | 4964 | retval.rethrows = json["rethrows"]; |
| 4963 | 4965 | retval.right = json["right"]; |
| 4966 | + retval.s = json["s"]; | |
| 4964 | 4967 | retval.sbyte = json["sbyte"]; |
| 4965 | 4968 | retval.sealed = json["sealed"]; |
| 4966 | 4969 | retval.sel = json["SEL"]; |
| @@ -5529,6 +5532,27 @@ Right Right_from_JSON(mixed json) { | ||
| 5529 | 5532 | return retval; |
| 5530 | 5533 | } |
| 5531 | 5534 | |
| 5535 | +class S { | |
| 5536 | + int s; // json: "s" | |
| 5537 | + | |
| 5538 | + string encode_json() { | |
| 5539 | + mapping(string:mixed) json = ([ | |
| 5540 | + "s" : s, | |
| 5541 | + ]); | |
| 5542 | + | |
| 5543 | + return Standards.JSON.encode(json); | |
| 5544 | + } | |
| 5545 | +} | |
| 5546 | + | |
| 5547 | +S S_from_JSON(mixed json) { | |
| 5548 | + S retval = S(); | |
| 5549 | + | |
| 5550 | + if (!intp(json["s"])) error("Expected integer"); | |
| 5551 | + retval.s = json["s"]; | |
| 5552 | + | |
| 5553 | + return retval; | |
| 5554 | +} | |
| 5555 | + | |
| 5532 | 5556 | class Sbyte { |
| 5533 | 5557 | int sbyte; // json: "sbyte" |
Mpythondefault / quicktype.py+20 −1
| @@ -4120,6 +4120,22 @@ class Right: | ||
| 4120 | 4120 | return result |
| 4121 | 4121 | |
| 4122 | 4122 | |
| 4123 | +@dataclass | |
| 4124 | +class S: | |
| 4125 | + s: int | |
| 4126 | + | |
| 4127 | + @staticmethod | |
| 4128 | + def from_dict(obj: Any) -> 'S': | |
| 4129 | + assert isinstance(obj, dict) | |
| 4130 | + s = from_int(obj.get("s")) | |
| 4131 | + return S(s) | |
| 4132 | + | |
| 4133 | + def to_dict(self) -> dict: | |
| 4134 | + result: dict = {} | |
| 4135 | + result["s"] = from_int(self.s) | |
| 4136 | + return result | |
| 4137 | + | |
| 4138 | + | |
| 4123 | 4139 | @dataclass |
| 4124 | 4140 | class Sbyte: |
| 4125 | 4141 | sbyte: int |
| @@ -4816,6 +4832,7 @@ class Obj4: | ||
| 4816 | 4832 | rethrows: Rethrows |
| 4817 | 4833 | obj4_return: Return |
| 4818 | 4834 | right: Right |
| 4835 | + s: S | |
| 4819 | 4836 | sbyte: Sbyte |
| 4820 | 4837 | sealed: Sealed |
| 4821 | 4838 | select: Select |
| @@ -4885,6 +4902,7 @@ class Obj4: | ||
| 4885 | 4902 | rethrows = Rethrows.from_dict(obj.get("rethrows")) |
| 4886 | 4903 | obj4_return = Return.from_dict(obj.get("return")) |
| 4887 | 4904 | right = Right.from_dict(obj.get("right")) |
| 4905 | + s = S.from_dict(obj.get("s")) | |
| 4888 | 4906 | sbyte = Sbyte.from_dict(obj.get("sbyte")) |
| 4889 | 4907 | sealed = Sealed.from_dict(obj.get("sealed")) |
| 4890 | 4908 | select = Select.from_dict(obj.get("select")) |
| @@ -4928,7 +4946,7 @@ class Obj4: | ||
| 4928 | 4946 | ulong = Ulong.from_dict(obj.get("ulong")) |
| 4929 | 4947 | unchecked = Unchecked.from_dict(obj.get("unchecked")) |
| 4930 | 4948 | undefined = Undefined.from_dict(obj.get("undefined")) |
| 4931 | - return Obj4(sel, obj4_self, true, type, dummy, public, quicktype, obj4_raise, range, readonly, ref, register, reinterpret_cast, repeat, require, required, requires, restrict, retain, rethrows, obj4_return, right, sbyte, sealed, select, purple_self, serialize, set, short, signed, sizeof, stackalloc, static, static_assert, static_cast, strictfp, string, struct, subscript, super, switch, symbol, synchronized, system, template, then, this, thread_local, throw, throws, to_json, top_level, transient, obj4_true, obj4_try, obj4_type, typealias, typedef, typeid, typename, typeof, uint, ulong, unchecked, undefined) | |
| 4949 | + return Obj4(sel, obj4_self, true, type, dummy, public, quicktype, obj4_raise, range, readonly, ref, register, reinterpret_cast, repeat, require, required, requires, restrict, retain, rethrows, obj4_return, right, s, sbyte, sealed, select, purple_self, serialize, set, short, signed, sizeof, stackalloc, static, static_assert, static_cast, strictfp, string, struct, subscript, super, switch, symbol, synchronized, system, template, then, this, thread_local, throw, throws, to_json, top_level, transient, obj4_true, obj4_try, obj4_type, typealias, typedef, typeid, typename, typeof, uint, ulong, unchecked, undefined) | |
| 4932 | 4950 | |
| 4933 | 4951 | def to_dict(self) -> dict: |
| 4934 | 4952 | result: dict = {} |
| @@ -4954,6 +4972,7 @@ class Obj4: | ||
| 4954 | 4972 | result["rethrows"] = to_class(Rethrows, self.rethrows) |
| 4955 | 4973 | result["return"] = to_class(Return, self.obj4_return) |
| 4956 | 4974 | result["right"] = to_class(Right, self.right) |
| 4975 | + result["s"] = to_class(S, self.s) | |
| 4957 | 4976 | result["sbyte"] = to_class(Sbyte, self.sbyte) |
| 4958 | 4977 | result["sealed"] = to_class(Sealed, self.sealed) |
| 4959 | 4978 | result["select"] = to_class(Select, self.select) |
Mrubydefault / TopLevel.rb+28 −0
| @@ -6229,6 +6229,31 @@ class Right < Dry::Struct | ||
| 6229 | 6229 | end |
| 6230 | 6230 | end |
| 6231 | 6231 | |
| 6232 | +class S < Dry::Struct | |
| 6233 | + attribute :s, Types::Integer | |
| 6234 | + | |
| 6235 | + def self.from_dynamic!(d) | |
| 6236 | + d = Types::Hash[d] | |
| 6237 | + new( | |
| 6238 | + s: d.fetch("s"), | |
| 6239 | + ) | |
| 6240 | + end | |
| 6241 | + | |
| 6242 | + def self.from_json!(json) | |
| 6243 | + from_dynamic!(JSON.parse(json)) | |
| 6244 | + end | |
| 6245 | + | |
| 6246 | + def to_dynamic | |
| 6247 | + { | |
| 6248 | + "s" => s, | |
| 6249 | + } | |
| 6250 | + end | |
| 6251 | + | |
| 6252 | + def to_json(options = nil) | |
| 6253 | + JSON.generate(to_dynamic, options) | |
| 6254 | + end | |
| 6255 | +end | |
| 6256 | + | |
| 6232 | 6257 | class Sbyte < Dry::Struct |
| 6233 | 6258 | attribute :sbyte, Types::Integer |
| 6234 | 6259 | |
| @@ -7183,6 +7208,7 @@ class Obj4 < Dry::Struct | ||
| 7183 | 7208 | attribute :retain, Retain |
| 7184 | 7209 | attribute :rethrows, Rethrows |
| 7185 | 7210 | attribute :right, Right |
| 7211 | + attribute :s, S | |
| 7186 | 7212 | attribute :sbyte, Sbyte |
| 7187 | 7213 | attribute :sealed, Sealed |
| 7188 | 7214 | attribute :sel, Sel |
| @@ -7252,6 +7278,7 @@ class Obj4 < Dry::Struct | ||
| 7252 | 7278 | retain: Retain.from_dynamic!(d.fetch("retain")), |
| 7253 | 7279 | rethrows: Rethrows.from_dynamic!(d.fetch("rethrows")), |
| 7254 | 7280 | right: Right.from_dynamic!(d.fetch("right")), |
| 7281 | + s: S.from_dynamic!(d.fetch("s")), | |
| 7255 | 7282 | sbyte: Sbyte.from_dynamic!(d.fetch("sbyte")), |
| 7256 | 7283 | sealed: Sealed.from_dynamic!(d.fetch("sealed")), |
| 7257 | 7284 | sel: Sel.from_dynamic!(d.fetch("SEL")), |
| @@ -7326,6 +7353,7 @@ class Obj4 < Dry::Struct | ||
| 7326 | 7353 | "retain" => retain.to_dynamic, |
| 7327 | 7354 | "rethrows" => rethrows.to_dynamic, |
| 7328 | 7355 | "right" => right.to_dynamic, |
| 7356 | + "s" => s.to_dynamic, | |
| 7329 | 7357 | "sbyte" => sbyte.to_dynamic, |
| 7330 | 7358 | "sealed" => sealed.to_dynamic, |
| 7331 | 7359 | "SEL" => sel.to_dynamic, |
Mrustdefault / module_under_test.rs+7 −0
| @@ -1565,6 +1565,8 @@ pub struct Obj4 { | ||
| 1565 | 1565 | |
| 1566 | 1566 | pub right: Right, |
| 1567 | 1567 | |
| 1568 | + pub s: S, | |
| 1569 | + | |
| 1568 | 1570 | pub sbyte: Sbyte, |
| 1569 | 1571 | |
| 1570 | 1572 | pub sealed: Sealed, |
| @@ -1795,6 +1797,11 @@ pub struct Right { | ||
| 1795 | 1797 | pub right: i64, |
| 1796 | 1798 | } |
| 1797 | 1799 | |
| 1800 | +#[derive(Debug, Clone, Serialize, Deserialize)] | |
| 1801 | +pub struct S { | |
| 1802 | + pub s: i64, | |
| 1803 | +} | |
| 1804 | + | |
| 1798 | 1805 | #[derive(Debug, Clone, Serialize, Deserialize)] |
| 1799 | 1806 | pub struct Sbyte { |
| 1800 | 1807 | pub sbyte: i64, |
Mscala3-upickledefault / TopLevel.scala+5 −0
| @@ -1097,6 +1097,7 @@ case class Obj4 ( | ||
| 1097 | 1097 | val retain : Retain, |
| 1098 | 1098 | val rethrows : Rethrows, |
| 1099 | 1099 | val right : Right, |
| 1100 | + val s : S, | |
| 1100 | 1101 | val sbyte : Sbyte, |
| 1101 | 1102 | val SEL : Sel, |
| 1102 | 1103 | val select : Select, |
| @@ -1248,6 +1249,10 @@ case class Right ( | ||
| 1248 | 1249 | val right : Long |
| 1249 | 1250 | ) derives OptionPickler.ReadWriter |
| 1250 | 1251 | |
| 1252 | +case class S ( | |
| 1253 | + val s : Long | |
| 1254 | +) derives OptionPickler.ReadWriter | |
| 1255 | + | |
| 1251 | 1256 | case class Sbyte ( |
| 1252 | 1257 | val sbyte : Long |
| 1253 | 1258 | ) derives OptionPickler.ReadWriter |
Mscala3default / TopLevel.scala+5 −0
| @@ -1061,6 +1061,7 @@ case class Obj4 ( | ||
| 1061 | 1061 | val retain : Retain, |
| 1062 | 1062 | val rethrows : Rethrows, |
| 1063 | 1063 | val right : Right, |
| 1064 | + val s : S, | |
| 1064 | 1065 | val sbyte : Sbyte, |
| 1065 | 1066 | val SEL : Sel, |
| 1066 | 1067 | val select : Select, |
| @@ -1220,6 +1221,10 @@ case class Right ( | ||
| 1220 | 1221 | val right : Long |
| 1221 | 1222 | ) derives Encoder.AsObject, Decoder |
| 1222 | 1223 | |
| 1224 | +case class S ( | |
| 1225 | + val s : Long | |
| 1226 | +) derives Encoder.AsObject, Decoder | |
| 1227 | + | |
| 1223 | 1228 | case class Sbyte ( |
| 1224 | 1229 | val sbyte : Long |
| 1225 | 1230 | ) derives Encoder.AsObject, Decoder |
Mswiftdefault / quicktype.swift+48 −0
| @@ -9596,6 +9596,7 @@ struct Obj4: Codable { | ||
| 9596 | 9596 | let requires: Requires |
| 9597 | 9597 | let restrict: Restrict |
| 9598 | 9598 | let retain: Retain |
| 9599 | + let s: S | |
| 9599 | 9600 | let sbyte: Sbyte |
| 9600 | 9601 | let sealed: Sealed |
| 9601 | 9602 | let sel: Sel |
| @@ -9663,6 +9664,7 @@ struct Obj4: Codable { | ||
| 9663 | 9664 | case requires = "requires" |
| 9664 | 9665 | case restrict = "restrict" |
| 9665 | 9666 | case retain = "retain" |
| 9667 | + case s = "s" | |
| 9666 | 9668 | case sbyte = "sbyte" |
| 9667 | 9669 | case sealed = "sealed" |
| 9668 | 9670 | case sel = "SEL" |
| @@ -9750,6 +9752,7 @@ extension Obj4 { | ||
| 9750 | 9752 | requires: Requires? = nil, |
| 9751 | 9753 | restrict: Restrict? = nil, |
| 9752 | 9754 | retain: Retain? = nil, |
| 9755 | + s: S? = nil, | |
| 9753 | 9756 | sbyte: Sbyte? = nil, |
| 9754 | 9757 | sealed: Sealed? = nil, |
| 9755 | 9758 | sel: Sel? = nil, |
| @@ -9817,6 +9820,7 @@ extension Obj4 { | ||
| 9817 | 9820 | requires: requires ?? self.requires, |
| 9818 | 9821 | restrict: restrict ?? self.restrict, |
| 9819 | 9822 | retain: retain ?? self.retain, |
| 9823 | + s: s ?? self.s, | |
| 9820 | 9824 | sbyte: sbyte ?? self.sbyte, |
| 9821 | 9825 | sealed: sealed ?? self.sealed, |
| 9822 | 9826 | sel: sel ?? self.sel, |
| @@ -11269,6 +11273,50 @@ extension Retain { | ||
| 11269 | 11273 | } |
| 11270 | 11274 | } |
| 11271 | 11275 | |
| 11276 | +// MARK: - S | |
| 11277 | +struct S: Codable { | |
| 11278 | + let s: Int | |
| 11279 | + | |
| 11280 | + enum CodingKeys: String, CodingKey { | |
| 11281 | + case s = "s" | |
| 11282 | + } | |
| 11283 | +} | |
| 11284 | + | |
| 11285 | +// MARK: S convenience initializers and mutators | |
| 11286 | + | |
| 11287 | +extension S { | |
| 11288 | + init(data: Data) throws { | |
| 11289 | + self = try newJSONDecoder().decode(S.self, from: data) | |
| 11290 | + } | |
| 11291 | + | |
| 11292 | + init(_ json: String, using encoding: String.Encoding = .utf8) throws { | |
| 11293 | + guard let data = json.data(using: encoding) else { | |
| 11294 | + throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil) | |
| 11295 | + } | |
| 11296 | + try self.init(data: data) | |
| 11297 | + } | |
| 11298 | + | |
| 11299 | + init(fromURL url: URL) throws { | |
| 11300 | + try self.init(data: try Data(contentsOf: url)) | |
| 11301 | + } | |
| 11302 | + | |
| 11303 | + func with( | |
| 11304 | + s: Int? = nil | |
| 11305 | + ) -> S { | |
| 11306 | + return S( | |
| 11307 | + s: s ?? self.s | |
| 11308 | + ) | |
| 11309 | + } | |
| 11310 | + | |
| 11311 | + func jsonData() throws -> Data { | |
| 11312 | + return try newJSONEncoder().encode(self) | |
| 11313 | + } | |
| 11314 | + | |
| 11315 | + func jsonString(encoding: String.Encoding = .utf8) throws -> String? { | |
| 11316 | + return String(data: try self.jsonData(), encoding: encoding) | |
| 11317 | + } | |
| 11318 | +} | |
| 11319 | + | |
| 11272 | 11320 | // MARK: - Sbyte |
| 11273 | 11321 | struct Sbyte: Codable { |
| 11274 | 11322 | let sbyte: Int |
Mtypescript-effect-schemadefault / TopLevel.ts+5 −0
| @@ -281,6 +281,10 @@ export class Sbyte extends S.Class<Sbyte>("Sbyte")({ | ||
| 281 | 281 | "sbyte": S.Int, |
| 282 | 282 | }) {} |
| 283 | 283 | |
| 284 | +export class SClass extends S.Class<SClass>("SClass")({ | |
| 285 | + "s": S.Int, | |
| 286 | +}) {} | |
| 287 | + | |
| 284 | 288 | export class Right extends S.Class<Right>("Right")({ |
| 285 | 289 | "right": S.Int, |
| 286 | 290 | }) {} |
| @@ -383,6 +387,7 @@ export class Obj4 extends S.Class<Obj4>("Obj4")({ | ||
| 383 | 387 | "rethrows": Rethrows, |
| 384 | 388 | "return": Return, |
| 385 | 389 | "right": Right, |
| 390 | + "s": SClass, | |
| 386 | 391 | "sbyte": Sbyte, |
| 387 | 392 | "sealed": Sealed, |
| 388 | 393 | "SEL": Sel, |
Mtypescript-zoddefault / TopLevel.ts+6 −0
| @@ -1076,6 +1076,11 @@ export const RightSchema = z.object({ | ||
| 1076 | 1076 | }); |
| 1077 | 1077 | export type Right = z.infer<typeof RightSchema>; |
| 1078 | 1078 | |
| 1079 | +export const SSchema = z.object({ | |
| 1080 | + "s": z.number().int(), | |
| 1081 | +}); | |
| 1082 | +export type S = z.infer<typeof SSchema>; | |
| 1083 | + | |
| 1079 | 1084 | export const SbyteSchema = z.object({ |
| 1080 | 1085 | "sbyte": z.number().int(), |
| 1081 | 1086 | }); |
| @@ -1628,6 +1633,7 @@ export const Obj4Schema = z.object({ | ||
| 1628 | 1633 | "rethrows": RethrowsSchema, |
| 1629 | 1634 | "return": ReturnSchema, |
| 1630 | 1635 | "right": RightSchema, |
| 1636 | + "s": SSchema, | |
| 1631 | 1637 | "sbyte": SbyteSchema, |
| 1632 | 1638 | "sealed": SealedSchema, |
| 1633 | 1639 | "SEL": SelSchema, |
Mtypescriptdefault / TopLevel.ts+9 −0
| @@ -1026,6 +1026,7 @@ export interface Obj4 { | ||
| 1026 | 1026 | rethrows: Rethrows; |
| 1027 | 1027 | return: Return; |
| 1028 | 1028 | right: Right; |
| 1029 | + s: S; | |
| 1029 | 1030 | sbyte: Sbyte; |
| 1030 | 1031 | sealed: Sealed; |
| 1031 | 1032 | select: Select; |
| @@ -1155,6 +1156,10 @@ export interface Right { | ||
| 1155 | 1156 | right: number; |
| 1156 | 1157 | } |
| 1157 | 1158 | |
| 1159 | +export interface S { | |
| 1160 | + s: number; | |
| 1161 | +} | |
| 1162 | + | |
| 1158 | 1163 | export interface Sbyte { |
| 1159 | 1164 | sbyte: number; |
| 1160 | 1165 | } |
| @@ -2438,6 +2443,7 @@ const typeMap: any = { | ||
| 2438 | 2443 | { json: "rethrows", js: "rethrows", typ: r("Rethrows") }, |
| 2439 | 2444 | { json: "return", js: "return", typ: r("Return") }, |
| 2440 | 2445 | { json: "right", js: "right", typ: r("Right") }, |
| 2446 | + { json: "s", js: "s", typ: r("S") }, | |
| 2441 | 2447 | { json: "sbyte", js: "sbyte", typ: r("Sbyte") }, |
| 2442 | 2448 | { json: "sealed", js: "sealed", typ: r("Sealed") }, |
| 2443 | 2449 | { json: "select", js: "select", typ: r("Select") }, |
| @@ -2545,6 +2551,9 @@ const typeMap: any = { | ||
| 2545 | 2551 | "Right": o([ |
| 2546 | 2552 | { json: "right", js: "right", typ: i(0) }, |
| 2547 | 2553 | ], false), |
| 2554 | + "S": o([ | |
| 2555 | + { json: "s", js: "s", typ: i(0) }, | |
| 2556 | + ], false), | |
| 2548 | 2557 | "Sbyte": o([ |
| 2549 | 2558 | { json: "sbyte", js: "sbyte", typ: i(0) }, |
| 2550 | 2559 | ], false), |
Test case
1 generated file · +21 −3test/inputs/json/priority/nbl-stats.json
Melixirdefault / QuickType.ex+21 −3
| @@ -816,6 +816,12 @@ defmodule Scorer do | ||
| 816 | 816 | def encode_name(value) when is_binary(value), do: value |
| 817 | 817 | def encode_name(_), do: {:error, "Unexpected type when encoding Scorer.name"} |
| 818 | 818 | |
| 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 | + | |
| 819 | 825 | def decode_player(value) when is_binary(value), do: value |
| 820 | 826 | def decode_player(_), do: {:error, "Unexpected type when decoding Scorer.player"} |
| 821 | 827 | |
| @@ -846,6 +852,12 @@ defmodule Scorer do | ||
| 846 | 852 | def encode_tno(value) when is_integer(value), do: value |
| 847 | 853 | def encode_tno(_), do: {:error, "Unexpected type when encoding Scorer.tno"} |
| 848 | 854 | |
| 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 | + | |
| 849 | 861 | def from_map(m) do |
| 850 | 862 | %Scorer{ |
| 851 | 863 | family_name: m["familyName"] && decode_family_name(m["familyName"]), |
| @@ -858,7 +870,7 @@ defmodule Scorer do | ||
| 858 | 870 | international_first_name: m["internationalFirstName"] && decode_international_first_name(m["internationalFirstName"]), |
| 859 | 871 | international_first_name_initial: m["internationalFirstNameInitial"] && FirstNameInitial.decode(m["internationalFirstNameInitial"]), |
| 860 | 872 | name: m["name"] && decode_name(m["name"]), |
| 861 | - per: m["per"], | |
| 873 | + per: m["per"] && decode_per(m["per"]), | |
| 862 | 874 | per_type: m["perType"] && PerType.decode(m["perType"]), |
| 863 | 875 | player: m["player"] && decode_player(m["player"]), |
| 864 | 876 | pno: decode_pno(m["pno"]), |
| @@ -867,7 +879,7 @@ defmodule Scorer do | ||
| 867 | 879 | summary: m["summary"] && decode_summary(m["summary"]), |
| 868 | 880 | times: m["times"] && Enum.map(m["times"], &TimeElement.from_map/1), |
| 869 | 881 | tno: decode_tno(m["tno"]), |
| 870 | - tot: m["tot"], | |
| 882 | + tot: m["tot"] && decode_tot(m["tot"]), | |
| 871 | 883 | } |
| 872 | 884 | end |
| 873 | 885 | |
| @@ -1130,6 +1142,12 @@ defmodule Pl do | ||
| 1130 | 1142 | def encode_active(value) when is_integer(value), do: value |
| 1131 | 1143 | def encode_active(_), do: {:error, "Unexpected type when encoding Pl.active"} |
| 1132 | 1144 | |
| 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 | + | |
| 1133 | 1151 | def decode_eff_1(value) when is_integer(value), do: value |
| 1134 | 1152 | def decode_eff_1(_), do: {:error, "Unexpected type when decoding Pl.eff_1"} |
| 1135 | 1153 | |
| @@ -1389,7 +1407,7 @@ defmodule Pl do | ||
| 1389 | 1407 | def from_map(m) do |
| 1390 | 1408 | %Pl{ |
| 1391 | 1409 | active: decode_active(m["active"]), |
| 1392 | - captain: m["captain"], | |
| 1410 | + captain: m["captain"] && decode_captain(m["captain"]), | |
| 1393 | 1411 | comp: m["comp"] && Comp.from_map(m["comp"]), |
| 1394 | 1412 | eff_1: decode_eff_1(m["eff_1"]), |
| 1395 | 1413 | eff_2: decode_eff_2(m["eff_2"]), |
Test case
1 generated file · +28 −4test/inputs/json/samples/github-events.json
Melixirdefault / QuickType.ex+28 −4
| @@ -2233,6 +2233,12 @@ defmodule Payload do | ||
| 2233 | 2233 | def encode_description(value) when is_binary(value), do: value |
| 2234 | 2234 | def encode_description(_), do: {:error, "Unexpected type when encoding Payload.description"} |
| 2235 | 2235 | |
| 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 | + | |
| 2236 | 2242 | def decode_head(value) when is_binary(value), do: value |
| 2237 | 2243 | def decode_head(_), do: {:error, "Unexpected type when decoding Payload.head"} |
| 2238 | 2244 | |
| @@ -2245,6 +2251,18 @@ defmodule Payload do | ||
| 2245 | 2251 | def encode_master_branch(value) when is_binary(value), do: value |
| 2246 | 2252 | def encode_master_branch(_), do: {:error, "Unexpected type when encoding Payload.master_branch"} |
| 2247 | 2253 | |
| 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 | + | |
| 2248 | 2266 | def decode_pusher_type(value) when is_binary(value), do: value |
| 2249 | 2267 | def decode_pusher_type(_), do: {:error, "Unexpected type when decoding Payload.pusher_type"} |
| 2250 | 2268 | |
| @@ -2263,6 +2281,12 @@ defmodule Payload do | ||
| 2263 | 2281 | def encode_ref_type(value) when is_binary(value), do: value |
| 2264 | 2282 | def encode_ref_type(_), do: {:error, "Unexpected type when encoding Payload.ref_type"} |
| 2265 | 2283 | |
| 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 | + | |
| 2266 | 2290 | def from_map(m) do |
| 2267 | 2291 | %Payload{ |
| 2268 | 2292 | action: m["action"] && decode_action(m["action"]), |
| @@ -2270,17 +2294,17 @@ defmodule Payload do | ||
| 2270 | 2294 | comment: m["comment"] && Comment.from_map(m["comment"]), |
| 2271 | 2295 | commits: m["commits"] && Enum.map(m["commits"], &Commit.from_map/1), |
| 2272 | 2296 | 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"]), | |
| 2274 | 2298 | head: m["head"] && decode_head(m["head"]), |
| 2275 | 2299 | issue: m["issue"] && Issue.from_map(m["issue"]), |
| 2276 | 2300 | master_branch: m["master_branch"] && decode_master_branch(m["master_branch"]), |
| 2277 | - number: m["number"], | |
| 2301 | + number: m["number"] && decode_number(m["number"]), | |
| 2278 | 2302 | 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"]), | |
| 2280 | 2304 | pusher_type: m["pusher_type"] && decode_pusher_type(m["pusher_type"]), |
| 2281 | 2305 | ref: m["ref"] && decode_ref(m["ref"]), |
| 2282 | 2306 | ref_type: m["ref_type"] && decode_ref_type(m["ref_type"]), |
| 2283 | - size: m["size"], | |
| 2307 | + size: m["size"] && decode_size(m["size"]), | |
| 2284 | 2308 | } |
| 2285 | 2309 | end |
Test case
1 generated file · +7 −1test/inputs/json/samples/pokedex.json
Melixirdefault / QuickType.ex+7 −1
| @@ -202,6 +202,12 @@ defmodule Pokemon do | ||
| 202 | 202 | def encode_candy(value) when is_binary(value), do: value |
| 203 | 203 | def encode_candy(_), do: {:error, "Unexpected type when encoding Pokemon.candy"} |
| 204 | 204 | |
| 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 | + | |
| 205 | 211 | def decode_height(value) when is_binary(value), do: value |
| 206 | 212 | def decode_height(_), do: {:error, "Unexpected type when decoding Pokemon.height"} |
| 207 | 213 | |
| @@ -276,7 +282,7 @@ defmodule Pokemon do | ||
| 276 | 282 | %Pokemon{ |
| 277 | 283 | avg_spawns: decode_avg_spawns(m["avg_spawns"]), |
| 278 | 284 | candy: decode_candy(m["candy"]), |
| 279 | - candy_count: m["candy_count"], | |
| 285 | + candy_count: m["candy_count"] && decode_candy_count(m["candy_count"]), | |
| 280 | 286 | egg: Egg.decode(m["egg"]), |
| 281 | 287 | height: decode_height(m["height"]), |
| 282 | 288 | id: decode_id(m["id"]), |
Test case
1 generated file · +7 −1test/inputs/schema/class-map-union.schema
Mschema-elixirdefault / QuickType.ex+7 −1
| @@ -12,9 +12,15 @@ defmodule UnionClass do | ||
| 12 | 12 | quux: integer() | nil |
| 13 | 13 | } |
| 14 | 14 | |
| 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 | + | |
| 15 | 21 | def from_map(m) do |
| 16 | 22 | %UnionClass{ |
| 17 | - quux: m["quux"], | |
| 23 | + quux: m["quux"] && decode_quux(m["quux"]), | |
| 18 | 24 | } |
| 19 | 25 | end |
Test case
1 generated file · +9 −1test/inputs/schema/description.schema
Mschema-elixirdefault / QuickType.ex+9 −1
| @@ -119,6 +119,14 @@ defmodule TopLevel do | ||
| 119 | 119 | union: float() | String.t() |
| 120 | 120 | } |
| 121 | 121 | |
| 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 | + | |
| 122 | 130 | def decode_object_or_string(%{"prop" => _,} = value), do: ObjectOrStringClass.from_map(value) |
| 123 | 131 | def decode_object_or_string(value) when is_binary(value), do: value |
| 124 | 132 | def decode_object_or_string(_), do: {:error, "Unexpected type when decoding TopLevel.object_or_string"} |
| @@ -131,7 +139,7 @@ defmodule TopLevel do | ||
| 131 | 139 | %TopLevel{ |
| 132 | 140 | bar: m["bar"], |
| 133 | 141 | enum: EnumEnum.decode(m["enum"]), |
| 134 | - foo: m["foo"], | |
| 142 | + foo: m["foo"] && decode_foo(m["foo"]), | |
| 135 | 143 | object_or_string: decode_object_or_string(m["object-or-string"]), |
| 136 | 144 | union: Map.fetch!(m, "union"), |
| 137 | 145 | } |
Test case
4 generated files · +792 −8test/inputs/schema/integer-type.schema
Mschema-csharp-recordsdefault / QuickType.cs+280 −0
| @@ -26,27 +26,35 @@ namespace QuickType | ||
| 26 | 26 | public partial record TopLevel |
| 27 | 27 | { |
| 28 | 28 | [JsonProperty("above_i32_max", Required = Required.Always)] |
| 29 | + [JsonConverter(typeof(PurpleMinMaxValueCheckConverter))] | |
| 29 | 30 | public long AboveI32Max { get; set; } |
| 30 | 31 | |
| 31 | 32 | [JsonProperty("below_i32_min", Required = Required.Always)] |
| 33 | + [JsonConverter(typeof(FluffyMinMaxValueCheckConverter))] | |
| 32 | 34 | public long BelowI32Min { get; set; } |
| 33 | 35 | |
| 34 | 36 | [JsonProperty("i32_range", Required = Required.Always)] |
| 37 | + [JsonConverter(typeof(TentacledMinMaxValueCheckConverter))] | |
| 35 | 38 | public long I32Range { get; set; } |
| 36 | 39 | |
| 37 | 40 | [JsonProperty("large_bounds", Required = Required.Always)] |
| 41 | + [JsonConverter(typeof(StickyMinMaxValueCheckConverter))] | |
| 38 | 42 | public long LargeBounds { get; set; } |
| 39 | 43 | |
| 40 | 44 | [JsonProperty("only_maximum", Required = Required.Always)] |
| 45 | + [JsonConverter(typeof(IndigoMinMaxValueCheckConverter))] | |
| 41 | 46 | public long OnlyMaximum { get; set; } |
| 42 | 47 | |
| 43 | 48 | [JsonProperty("only_minimum", Required = Required.Always)] |
| 49 | + [JsonConverter(typeof(IndecentMinMaxValueCheckConverter))] | |
| 44 | 50 | public long OnlyMinimum { get; set; } |
| 45 | 51 | |
| 46 | 52 | [JsonProperty("small_negative", Required = Required.Always)] |
| 53 | + [JsonConverter(typeof(HilariousMinMaxValueCheckConverter))] | |
| 47 | 54 | public long SmallNegative { get; set; } |
| 48 | 55 | |
| 49 | 56 | [JsonProperty("small_positive", Required = Required.Always)] |
| 57 | + [JsonConverter(typeof(AmbitiousMinMaxValueCheckConverter))] | |
| 50 | 58 | public long SmallPositive { get; set; } |
| 51 | 59 | |
| 52 | 60 | [JsonProperty("unbounded", Required = Required.Always)] |
| @@ -75,6 +83,278 @@ namespace QuickType | ||
| 75 | 83 | }, |
| 76 | 84 | }; |
| 77 | 85 | } |
| 86 | + | |
| 87 | + internal class PurpleMinMaxValueCheckConverter : JsonConverter | |
| 88 | + { | |
| 89 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 90 | + | |
| 91 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 92 | + { | |
| 93 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 94 | + var value = serializer.Deserialize<long>(reader); | |
| 95 | + if (value >= 0 && value <= 2147483648) | |
| 96 | + { | |
| 97 | + return value; | |
| 98 | + } | |
| 99 | + throw new Exception("Cannot unmarshal type long"); | |
| 100 | + } | |
| 101 | + | |
| 102 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 103 | + { | |
| 104 | + if (untypedValue == null) | |
| 105 | + { | |
| 106 | + serializer.Serialize(writer, null); | |
| 107 | + return; | |
| 108 | + } | |
| 109 | + var value = (long)untypedValue; | |
| 110 | + if (value >= 0 && value <= 2147483648) | |
| 111 | + { | |
| 112 | + serializer.Serialize(writer, value); | |
| 113 | + return; | |
| 114 | + } | |
| 115 | + throw new Exception("Cannot marshal type long"); | |
| 116 | + } | |
| 117 | + | |
| 118 | + public static readonly PurpleMinMaxValueCheckConverter Singleton = new PurpleMinMaxValueCheckConverter(); | |
| 119 | + } | |
| 120 | + | |
| 121 | + internal class FluffyMinMaxValueCheckConverter : JsonConverter | |
| 122 | + { | |
| 123 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 124 | + | |
| 125 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 126 | + { | |
| 127 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 128 | + var value = serializer.Deserialize<long>(reader); | |
| 129 | + if (value >= -2147483649 && value <= 0) | |
| 130 | + { | |
| 131 | + return value; | |
| 132 | + } | |
| 133 | + throw new Exception("Cannot unmarshal type long"); | |
| 134 | + } | |
| 135 | + | |
| 136 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 137 | + { | |
| 138 | + if (untypedValue == null) | |
| 139 | + { | |
| 140 | + serializer.Serialize(writer, null); | |
| 141 | + return; | |
| 142 | + } | |
| 143 | + var value = (long)untypedValue; | |
| 144 | + if (value >= -2147483649 && value <= 0) | |
| 145 | + { | |
| 146 | + serializer.Serialize(writer, value); | |
| 147 | + return; | |
| 148 | + } | |
| 149 | + throw new Exception("Cannot marshal type long"); | |
| 150 | + } | |
| 151 | + | |
| 152 | + public static readonly FluffyMinMaxValueCheckConverter Singleton = new FluffyMinMaxValueCheckConverter(); | |
| 153 | + } | |
| 154 | + | |
| 155 | + internal class TentacledMinMaxValueCheckConverter : JsonConverter | |
| 156 | + { | |
| 157 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 158 | + | |
| 159 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 160 | + { | |
| 161 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 162 | + var value = serializer.Deserialize<long>(reader); | |
| 163 | + if (value >= -2147483648 && value <= 2147483647) | |
| 164 | + { | |
| 165 | + return value; | |
| 166 | + } | |
| 167 | + throw new Exception("Cannot unmarshal type long"); | |
| 168 | + } | |
| 169 | + | |
| 170 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 171 | + { | |
| 172 | + if (untypedValue == null) | |
| 173 | + { | |
| 174 | + serializer.Serialize(writer, null); | |
| 175 | + return; | |
| 176 | + } | |
| 177 | + var value = (long)untypedValue; | |
| 178 | + if (value >= -2147483648 && value <= 2147483647) | |
| 179 | + { | |
| 180 | + serializer.Serialize(writer, value); | |
| 181 | + return; | |
| 182 | + } | |
| 183 | + throw new Exception("Cannot marshal type long"); | |
| 184 | + } | |
| 185 | + | |
| 186 | + public static readonly TentacledMinMaxValueCheckConverter Singleton = new TentacledMinMaxValueCheckConverter(); | |
| 187 | + } | |
| 188 | + | |
| 189 | + internal class StickyMinMaxValueCheckConverter : JsonConverter | |
| 190 | + { | |
| 191 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 192 | + | |
| 193 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 194 | + { | |
| 195 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 196 | + var value = serializer.Deserialize<long>(reader); | |
| 197 | + if (value >= -9007199254740991 && value <= 9007199254740991) | |
| 198 | + { | |
| 199 | + return value; | |
| 200 | + } | |
| 201 | + throw new Exception("Cannot unmarshal type long"); | |
| 202 | + } | |
| 203 | + | |
| 204 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 205 | + { | |
| 206 | + if (untypedValue == null) | |
| 207 | + { | |
| 208 | + serializer.Serialize(writer, null); | |
| 209 | + return; | |
| 210 | + } | |
| 211 | + var value = (long)untypedValue; | |
| 212 | + if (value >= -9007199254740991 && value <= 9007199254740991) | |
| 213 | + { | |
| 214 | + serializer.Serialize(writer, value); | |
| 215 | + return; | |
| 216 | + } | |
| 217 | + throw new Exception("Cannot marshal type long"); | |
| 218 | + } | |
| 219 | + | |
| 220 | + public static readonly StickyMinMaxValueCheckConverter Singleton = new StickyMinMaxValueCheckConverter(); | |
| 221 | + } | |
| 222 | + | |
| 223 | + internal class IndigoMinMaxValueCheckConverter : JsonConverter | |
| 224 | + { | |
| 225 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 226 | + | |
| 227 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 228 | + { | |
| 229 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 230 | + var value = serializer.Deserialize<long>(reader); | |
| 231 | + if (value <= 0) | |
| 232 | + { | |
| 233 | + return value; | |
| 234 | + } | |
| 235 | + throw new Exception("Cannot unmarshal type long"); | |
| 236 | + } | |
| 237 | + | |
| 238 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 239 | + { | |
| 240 | + if (untypedValue == null) | |
| 241 | + { | |
| 242 | + serializer.Serialize(writer, null); | |
| 243 | + return; | |
| 244 | + } | |
| 245 | + var value = (long)untypedValue; | |
| 246 | + if (value <= 0) | |
| 247 | + { | |
| 248 | + serializer.Serialize(writer, value); | |
| 249 | + return; | |
| 250 | + } | |
| 251 | + throw new Exception("Cannot marshal type long"); | |
| 252 | + } | |
| 253 | + | |
| 254 | + public static readonly IndigoMinMaxValueCheckConverter Singleton = new IndigoMinMaxValueCheckConverter(); | |
| 255 | + } | |
| 256 | + | |
| 257 | + internal class IndecentMinMaxValueCheckConverter : JsonConverter | |
| 258 | + { | |
| 259 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 260 | + | |
| 261 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 262 | + { | |
| 263 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 264 | + var value = serializer.Deserialize<long>(reader); | |
| 265 | + if (value >= 0) | |
| 266 | + { | |
| 267 | + return value; | |
| 268 | + } | |
| 269 | + throw new Exception("Cannot unmarshal type long"); | |
| 270 | + } | |
| 271 | + | |
| 272 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 273 | + { | |
| 274 | + if (untypedValue == null) | |
| 275 | + { | |
| 276 | + serializer.Serialize(writer, null); | |
| 277 | + return; | |
| 278 | + } | |
| 279 | + var value = (long)untypedValue; | |
| 280 | + if (value >= 0) | |
| 281 | + { | |
| 282 | + serializer.Serialize(writer, value); | |
| 283 | + return; | |
| 284 | + } | |
| 285 | + throw new Exception("Cannot marshal type long"); | |
| 286 | + } | |
| 287 | + | |
| 288 | + public static readonly IndecentMinMaxValueCheckConverter Singleton = new IndecentMinMaxValueCheckConverter(); | |
| 289 | + } | |
| 290 | + | |
| 291 | + internal class HilariousMinMaxValueCheckConverter : JsonConverter | |
| 292 | + { | |
| 293 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 294 | + | |
| 295 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 296 | + { | |
| 297 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 298 | + var value = serializer.Deserialize<long>(reader); | |
| 299 | + if (value >= -100 && value <= 0) | |
| 300 | + { | |
| 301 | + return value; | |
| 302 | + } | |
| 303 | + throw new Exception("Cannot unmarshal type long"); | |
| 304 | + } | |
| 305 | + | |
| 306 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 307 | + { | |
| 308 | + if (untypedValue == null) | |
| 309 | + { | |
| 310 | + serializer.Serialize(writer, null); | |
| 311 | + return; | |
| 312 | + } | |
| 313 | + var value = (long)untypedValue; | |
| 314 | + if (value >= -100 && value <= 0) | |
| 315 | + { | |
| 316 | + serializer.Serialize(writer, value); | |
| 317 | + return; | |
| 318 | + } | |
| 319 | + throw new Exception("Cannot marshal type long"); | |
| 320 | + } | |
| 321 | + | |
| 322 | + public static readonly HilariousMinMaxValueCheckConverter Singleton = new HilariousMinMaxValueCheckConverter(); | |
| 323 | + } | |
| 324 | + | |
| 325 | + internal class AmbitiousMinMaxValueCheckConverter : JsonConverter | |
| 326 | + { | |
| 327 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 328 | + | |
| 329 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 330 | + { | |
| 331 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 332 | + var value = serializer.Deserialize<long>(reader); | |
| 333 | + if (value >= 0 && value <= 100) | |
| 334 | + { | |
| 335 | + return value; | |
| 336 | + } | |
| 337 | + throw new Exception("Cannot unmarshal type long"); | |
| 338 | + } | |
| 339 | + | |
| 340 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 341 | + { | |
| 342 | + if (untypedValue == null) | |
| 343 | + { | |
| 344 | + serializer.Serialize(writer, null); | |
| 345 | + return; | |
| 346 | + } | |
| 347 | + var value = (long)untypedValue; | |
| 348 | + if (value >= 0 && value <= 100) | |
| 349 | + { | |
| 350 | + serializer.Serialize(writer, value); | |
| 351 | + return; | |
| 352 | + } | |
| 353 | + throw new Exception("Cannot marshal type long"); | |
| 354 | + } | |
| 355 | + | |
| 356 | + public static readonly AmbitiousMinMaxValueCheckConverter Singleton = new AmbitiousMinMaxValueCheckConverter(); | |
| 357 | + } | |
| 78 | 358 | } |
| 79 | 359 | #pragma warning restore CS8618 |
| 80 | 360 | #pragma warning restore CS8601 |
Mschema-csharp-SystemTextJsondefault / QuickType.cs+224 −0
| @@ -24,34 +24,42 @@ namespace QuickType | ||
| 24 | 24 | { |
| 25 | 25 | [JsonRequired] |
| 26 | 26 | [JsonPropertyName("above_i32_max")] |
| 27 | + [JsonConverter(typeof(PurpleMinMaxValueCheckConverter))] | |
| 27 | 28 | public long AboveI32Max { get; set; } |
| 28 | 29 | |
| 29 | 30 | [JsonRequired] |
| 30 | 31 | [JsonPropertyName("below_i32_min")] |
| 32 | + [JsonConverter(typeof(FluffyMinMaxValueCheckConverter))] | |
| 31 | 33 | public long BelowI32Min { get; set; } |
| 32 | 34 | |
| 33 | 35 | [JsonRequired] |
| 34 | 36 | [JsonPropertyName("i32_range")] |
| 37 | + [JsonConverter(typeof(TentacledMinMaxValueCheckConverter))] | |
| 35 | 38 | public long I32Range { get; set; } |
| 36 | 39 | |
| 37 | 40 | [JsonRequired] |
| 38 | 41 | [JsonPropertyName("large_bounds")] |
| 42 | + [JsonConverter(typeof(StickyMinMaxValueCheckConverter))] | |
| 39 | 43 | public long LargeBounds { get; set; } |
| 40 | 44 | |
| 41 | 45 | [JsonRequired] |
| 42 | 46 | [JsonPropertyName("only_maximum")] |
| 47 | + [JsonConverter(typeof(IndigoMinMaxValueCheckConverter))] | |
| 43 | 48 | public long OnlyMaximum { get; set; } |
| 44 | 49 | |
| 45 | 50 | [JsonRequired] |
| 46 | 51 | [JsonPropertyName("only_minimum")] |
| 52 | + [JsonConverter(typeof(IndecentMinMaxValueCheckConverter))] | |
| 47 | 53 | public long OnlyMinimum { get; set; } |
| 48 | 54 | |
| 49 | 55 | [JsonRequired] |
| 50 | 56 | [JsonPropertyName("small_negative")] |
| 57 | + [JsonConverter(typeof(HilariousMinMaxValueCheckConverter))] | |
| 51 | 58 | public long SmallNegative { get; set; } |
| 52 | 59 | |
| 53 | 60 | [JsonRequired] |
| 54 | 61 | [JsonPropertyName("small_positive")] |
| 62 | + [JsonConverter(typeof(AmbitiousMinMaxValueCheckConverter))] | |
| 55 | 63 | public long SmallPositive { get; set; } |
| 56 | 64 | |
| 57 | 65 | [JsonRequired] |
| @@ -81,6 +89,222 @@ namespace QuickType | ||
| 81 | 89 | }, |
| 82 | 90 | }; |
| 83 | 91 | } |
| 92 | + | |
| 93 | + internal class PurpleMinMaxValueCheckConverter : JsonConverter<long> | |
| 94 | + { | |
| 95 | + public override bool CanConvert(Type t) => t == typeof(long); | |
| 96 | + | |
| 97 | + public override long Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) | |
| 98 | + { | |
| 99 | + var value = reader.GetInt64(); | |
| 100 | + if (value >= 0 && value <= 2147483648) | |
| 101 | + { | |
| 102 | + return value; | |
| 103 | + } | |
| 104 | + throw new JsonException("Cannot unmarshal type long"); | |
| 105 | + } | |
| 106 | + | |
| 107 | + public override void Write(Utf8JsonWriter writer, long value, JsonSerializerOptions options) | |
| 108 | + { | |
| 109 | + if (value >= 0 && value <= 2147483648) | |
| 110 | + { | |
| 111 | + JsonSerializer.Serialize(writer, value, options); | |
| 112 | + return; | |
| 113 | + } | |
| 114 | + throw new NotSupportedException("Cannot marshal type long"); | |
| 115 | + } | |
| 116 | + | |
| 117 | + public static readonly PurpleMinMaxValueCheckConverter Singleton = new PurpleMinMaxValueCheckConverter(); | |
| 118 | + } | |
| 119 | + | |
| 120 | + internal class FluffyMinMaxValueCheckConverter : JsonConverter<long> | |
| 121 | + { | |
| 122 | + public override bool CanConvert(Type t) => t == typeof(long); | |
| 123 | + | |
| 124 | + public override long Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) | |
| 125 | + { | |
| 126 | + var value = reader.GetInt64(); | |
| 127 | + if (value >= -2147483649 && value <= 0) | |
| 128 | + { | |
| 129 | + return value; | |
| 130 | + } | |
| 131 | + throw new JsonException("Cannot unmarshal type long"); | |
| 132 | + } | |
| 133 | + | |
| 134 | + public override void Write(Utf8JsonWriter writer, long value, JsonSerializerOptions options) | |
| 135 | + { | |
| 136 | + if (value >= -2147483649 && value <= 0) | |
| 137 | + { | |
| 138 | + JsonSerializer.Serialize(writer, value, options); | |
| 139 | + return; | |
| 140 | + } | |
| 141 | + throw new NotSupportedException("Cannot marshal type long"); | |
| 142 | + } | |
| 143 | + | |
| 144 | + public static readonly FluffyMinMaxValueCheckConverter Singleton = new FluffyMinMaxValueCheckConverter(); | |
| 145 | + } | |
| 146 | + | |
| 147 | + internal class TentacledMinMaxValueCheckConverter : JsonConverter<long> | |
| 148 | + { | |
| 149 | + public override bool CanConvert(Type t) => t == typeof(long); | |
| 150 | + | |
| 151 | + public override long Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) | |
| 152 | + { | |
| 153 | + var value = reader.GetInt64(); | |
| 154 | + if (value >= -2147483648 && value <= 2147483647) | |
| 155 | + { | |
| 156 | + return value; | |
| 157 | + } | |
| 158 | + throw new JsonException("Cannot unmarshal type long"); | |
| 159 | + } | |
| 160 | + | |
| 161 | + public override void Write(Utf8JsonWriter writer, long value, JsonSerializerOptions options) | |
| 162 | + { | |
| 163 | + if (value >= -2147483648 && value <= 2147483647) | |
| 164 | + { | |
| 165 | + JsonSerializer.Serialize(writer, value, options); | |
| 166 | + return; | |
| 167 | + } | |
| 168 | + throw new NotSupportedException("Cannot marshal type long"); | |
| 169 | + } | |
| 170 | + | |
| 171 | + public static readonly TentacledMinMaxValueCheckConverter Singleton = new TentacledMinMaxValueCheckConverter(); | |
| 172 | + } | |
| 173 | + | |
| 174 | + internal class StickyMinMaxValueCheckConverter : JsonConverter<long> | |
| 175 | + { | |
| 176 | + public override bool CanConvert(Type t) => t == typeof(long); | |
| 177 | + | |
| 178 | + public override long Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) | |
| 179 | + { | |
| 180 | + var value = reader.GetInt64(); | |
| 181 | + if (value >= -9007199254740991 && value <= 9007199254740991) | |
| 182 | + { | |
| 183 | + return value; | |
| 184 | + } | |
| 185 | + throw new JsonException("Cannot unmarshal type long"); | |
| 186 | + } | |
| 187 | + | |
| 188 | + public override void Write(Utf8JsonWriter writer, long value, JsonSerializerOptions options) | |
| 189 | + { | |
| 190 | + if (value >= -9007199254740991 && value <= 9007199254740991) | |
| 191 | + { | |
| 192 | + JsonSerializer.Serialize(writer, value, options); | |
| 193 | + return; | |
| 194 | + } | |
| 195 | + throw new NotSupportedException("Cannot marshal type long"); | |
| 196 | + } | |
| 197 | + | |
| 198 | + public static readonly StickyMinMaxValueCheckConverter Singleton = new StickyMinMaxValueCheckConverter(); | |
| 199 | + } | |
| 200 | + | |
| 201 | + internal class IndigoMinMaxValueCheckConverter : JsonConverter<long> | |
| 202 | + { | |
| 203 | + public override bool CanConvert(Type t) => t == typeof(long); | |
| 204 | + | |
| 205 | + public override long Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) | |
| 206 | + { | |
| 207 | + var value = reader.GetInt64(); | |
| 208 | + if (value <= 0) | |
| 209 | + { | |
| 210 | + return value; | |
| 211 | + } | |
| 212 | + throw new JsonException("Cannot unmarshal type long"); | |
| 213 | + } | |
| 214 | + | |
| 215 | + public override void Write(Utf8JsonWriter writer, long value, JsonSerializerOptions options) | |
| 216 | + { | |
| 217 | + if (value <= 0) | |
| 218 | + { | |
| 219 | + JsonSerializer.Serialize(writer, value, options); | |
| 220 | + return; | |
| 221 | + } | |
| 222 | + throw new NotSupportedException("Cannot marshal type long"); | |
| 223 | + } | |
| 224 | + | |
| 225 | + public static readonly IndigoMinMaxValueCheckConverter Singleton = new IndigoMinMaxValueCheckConverter(); | |
| 226 | + } | |
| 227 | + | |
| 228 | + internal class IndecentMinMaxValueCheckConverter : JsonConverter<long> | |
| 229 | + { | |
| 230 | + public override bool CanConvert(Type t) => t == typeof(long); | |
| 231 | + | |
| 232 | + public override long Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) | |
| 233 | + { | |
| 234 | + var value = reader.GetInt64(); | |
| 235 | + if (value >= 0) | |
| 236 | + { | |
| 237 | + return value; | |
| 238 | + } | |
| 239 | + throw new JsonException("Cannot unmarshal type long"); | |
| 240 | + } | |
| 241 | + | |
| 242 | + public override void Write(Utf8JsonWriter writer, long value, JsonSerializerOptions options) | |
| 243 | + { | |
| 244 | + if (value >= 0) | |
| 245 | + { | |
| 246 | + JsonSerializer.Serialize(writer, value, options); | |
| 247 | + return; | |
| 248 | + } | |
| 249 | + throw new NotSupportedException("Cannot marshal type long"); | |
| 250 | + } | |
| 251 | + | |
| 252 | + public static readonly IndecentMinMaxValueCheckConverter Singleton = new IndecentMinMaxValueCheckConverter(); | |
| 253 | + } | |
| 254 | + | |
| 255 | + internal class HilariousMinMaxValueCheckConverter : JsonConverter<long> | |
| 256 | + { | |
| 257 | + public override bool CanConvert(Type t) => t == typeof(long); | |
| 258 | + | |
| 259 | + public override long Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) | |
| 260 | + { | |
| 261 | + var value = reader.GetInt64(); | |
| 262 | + if (value >= -100 && value <= 0) | |
| 263 | + { | |
| 264 | + return value; | |
| 265 | + } | |
| 266 | + throw new JsonException("Cannot unmarshal type long"); | |
| 267 | + } | |
| 268 | + | |
| 269 | + public override void Write(Utf8JsonWriter writer, long value, JsonSerializerOptions options) | |
| 270 | + { | |
| 271 | + if (value >= -100 && value <= 0) | |
| 272 | + { | |
| 273 | + JsonSerializer.Serialize(writer, value, options); | |
| 274 | + return; | |
| 275 | + } | |
| 276 | + throw new NotSupportedException("Cannot marshal type long"); | |
| 277 | + } | |
| 278 | + | |
| 279 | + public static readonly HilariousMinMaxValueCheckConverter Singleton = new HilariousMinMaxValueCheckConverter(); | |
| 280 | + } | |
| 281 | + | |
| 282 | + internal class AmbitiousMinMaxValueCheckConverter : JsonConverter<long> | |
| 283 | + { | |
| 284 | + public override bool CanConvert(Type t) => t == typeof(long); | |
| 285 | + | |
| 286 | + public override long Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) | |
| 287 | + { | |
| 288 | + var value = reader.GetInt64(); | |
| 289 | + if (value >= 0 && value <= 100) | |
| 290 | + { | |
| 291 | + return value; | |
| 292 | + } | |
| 293 | + throw new JsonException("Cannot unmarshal type long"); | |
| 294 | + } | |
| 295 | + | |
| 296 | + public override void Write(Utf8JsonWriter writer, long value, JsonSerializerOptions options) | |
| 297 | + { | |
| 298 | + if (value >= 0 && value <= 100) | |
| 299 | + { | |
| 300 | + JsonSerializer.Serialize(writer, value, options); | |
| 301 | + return; | |
| 302 | + } | |
| 303 | + throw new NotSupportedException("Cannot marshal type long"); | |
| 304 | + } | |
| 305 | + | |
| 306 | + public static readonly AmbitiousMinMaxValueCheckConverter Singleton = new AmbitiousMinMaxValueCheckConverter(); | |
| 307 | + } | |
| 84 | 308 | |
| 85 | 309 | public class DateOnlyConverter : JsonConverter<DateOnly> |
| 86 | 310 | { |
Mschema-csharpdefault / QuickType.cs+280 −0
| @@ -26,27 +26,35 @@ namespace QuickType | ||
| 26 | 26 | public partial class TopLevel |
| 27 | 27 | { |
| 28 | 28 | [JsonProperty("above_i32_max", Required = Required.Always)] |
| 29 | + [JsonConverter(typeof(PurpleMinMaxValueCheckConverter))] | |
| 29 | 30 | public long AboveI32Max { get; set; } |
| 30 | 31 | |
| 31 | 32 | [JsonProperty("below_i32_min", Required = Required.Always)] |
| 33 | + [JsonConverter(typeof(FluffyMinMaxValueCheckConverter))] | |
| 32 | 34 | public long BelowI32Min { get; set; } |
| 33 | 35 | |
| 34 | 36 | [JsonProperty("i32_range", Required = Required.Always)] |
| 37 | + [JsonConverter(typeof(TentacledMinMaxValueCheckConverter))] | |
| 35 | 38 | public long I32Range { get; set; } |
| 36 | 39 | |
| 37 | 40 | [JsonProperty("large_bounds", Required = Required.Always)] |
| 41 | + [JsonConverter(typeof(StickyMinMaxValueCheckConverter))] | |
| 38 | 42 | public long LargeBounds { get; set; } |
| 39 | 43 | |
| 40 | 44 | [JsonProperty("only_maximum", Required = Required.Always)] |
| 45 | + [JsonConverter(typeof(IndigoMinMaxValueCheckConverter))] | |
| 41 | 46 | public long OnlyMaximum { get; set; } |
| 42 | 47 | |
| 43 | 48 | [JsonProperty("only_minimum", Required = Required.Always)] |
| 49 | + [JsonConverter(typeof(IndecentMinMaxValueCheckConverter))] | |
| 44 | 50 | public long OnlyMinimum { get; set; } |
| 45 | 51 | |
| 46 | 52 | [JsonProperty("small_negative", Required = Required.Always)] |
| 53 | + [JsonConverter(typeof(HilariousMinMaxValueCheckConverter))] | |
| 47 | 54 | public long SmallNegative { get; set; } |
| 48 | 55 | |
| 49 | 56 | [JsonProperty("small_positive", Required = Required.Always)] |
| 57 | + [JsonConverter(typeof(AmbitiousMinMaxValueCheckConverter))] | |
| 50 | 58 | public long SmallPositive { get; set; } |
| 51 | 59 | |
| 52 | 60 | [JsonProperty("unbounded", Required = Required.Always)] |
| @@ -75,6 +83,278 @@ namespace QuickType | ||
| 75 | 83 | }, |
| 76 | 84 | }; |
| 77 | 85 | } |
| 86 | + | |
| 87 | + internal class PurpleMinMaxValueCheckConverter : JsonConverter | |
| 88 | + { | |
| 89 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 90 | + | |
| 91 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 92 | + { | |
| 93 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 94 | + var value = serializer.Deserialize<long>(reader); | |
| 95 | + if (value >= 0 && value <= 2147483648) | |
| 96 | + { | |
| 97 | + return value; | |
| 98 | + } | |
| 99 | + throw new Exception("Cannot unmarshal type long"); | |
| 100 | + } | |
| 101 | + | |
| 102 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 103 | + { | |
| 104 | + if (untypedValue == null) | |
| 105 | + { | |
| 106 | + serializer.Serialize(writer, null); | |
| 107 | + return; | |
| 108 | + } | |
| 109 | + var value = (long)untypedValue; | |
| 110 | + if (value >= 0 && value <= 2147483648) | |
| 111 | + { | |
| 112 | + serializer.Serialize(writer, value); | |
| 113 | + return; | |
| 114 | + } | |
| 115 | + throw new Exception("Cannot marshal type long"); | |
| 116 | + } | |
| 117 | + | |
| 118 | + public static readonly PurpleMinMaxValueCheckConverter Singleton = new PurpleMinMaxValueCheckConverter(); | |
| 119 | + } | |
| 120 | + | |
| 121 | + internal class FluffyMinMaxValueCheckConverter : JsonConverter | |
| 122 | + { | |
| 123 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 124 | + | |
| 125 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 126 | + { | |
| 127 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 128 | + var value = serializer.Deserialize<long>(reader); | |
| 129 | + if (value >= -2147483649 && value <= 0) | |
| 130 | + { | |
| 131 | + return value; | |
| 132 | + } | |
| 133 | + throw new Exception("Cannot unmarshal type long"); | |
| 134 | + } | |
| 135 | + | |
| 136 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 137 | + { | |
| 138 | + if (untypedValue == null) | |
| 139 | + { | |
| 140 | + serializer.Serialize(writer, null); | |
| 141 | + return; | |
| 142 | + } | |
| 143 | + var value = (long)untypedValue; | |
| 144 | + if (value >= -2147483649 && value <= 0) | |
| 145 | + { | |
| 146 | + serializer.Serialize(writer, value); | |
| 147 | + return; | |
| 148 | + } | |
| 149 | + throw new Exception("Cannot marshal type long"); | |
| 150 | + } | |
| 151 | + | |
| 152 | + public static readonly FluffyMinMaxValueCheckConverter Singleton = new FluffyMinMaxValueCheckConverter(); | |
| 153 | + } | |
| 154 | + | |
| 155 | + internal class TentacledMinMaxValueCheckConverter : JsonConverter | |
| 156 | + { | |
| 157 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 158 | + | |
| 159 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 160 | + { | |
| 161 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 162 | + var value = serializer.Deserialize<long>(reader); | |
| 163 | + if (value >= -2147483648 && value <= 2147483647) | |
| 164 | + { | |
| 165 | + return value; | |
| 166 | + } | |
| 167 | + throw new Exception("Cannot unmarshal type long"); | |
| 168 | + } | |
| 169 | + | |
| 170 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 171 | + { | |
| 172 | + if (untypedValue == null) | |
| 173 | + { | |
| 174 | + serializer.Serialize(writer, null); | |
| 175 | + return; | |
| 176 | + } | |
| 177 | + var value = (long)untypedValue; | |
| 178 | + if (value >= -2147483648 && value <= 2147483647) | |
| 179 | + { | |
| 180 | + serializer.Serialize(writer, value); | |
| 181 | + return; | |
| 182 | + } | |
| 183 | + throw new Exception("Cannot marshal type long"); | |
| 184 | + } | |
| 185 | + | |
| 186 | + public static readonly TentacledMinMaxValueCheckConverter Singleton = new TentacledMinMaxValueCheckConverter(); | |
| 187 | + } | |
| 188 | + | |
| 189 | + internal class StickyMinMaxValueCheckConverter : JsonConverter | |
| 190 | + { | |
| 191 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 192 | + | |
| 193 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 194 | + { | |
| 195 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 196 | + var value = serializer.Deserialize<long>(reader); | |
| 197 | + if (value >= -9007199254740991 && value <= 9007199254740991) | |
| 198 | + { | |
| 199 | + return value; | |
| 200 | + } | |
| 201 | + throw new Exception("Cannot unmarshal type long"); | |
| 202 | + } | |
| 203 | + | |
| 204 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 205 | + { | |
| 206 | + if (untypedValue == null) | |
| 207 | + { | |
| 208 | + serializer.Serialize(writer, null); | |
| 209 | + return; | |
| 210 | + } | |
| 211 | + var value = (long)untypedValue; | |
| 212 | + if (value >= -9007199254740991 && value <= 9007199254740991) | |
| 213 | + { | |
| 214 | + serializer.Serialize(writer, value); | |
| 215 | + return; | |
| 216 | + } | |
| 217 | + throw new Exception("Cannot marshal type long"); | |
| 218 | + } | |
| 219 | + | |
| 220 | + public static readonly StickyMinMaxValueCheckConverter Singleton = new StickyMinMaxValueCheckConverter(); | |
| 221 | + } | |
| 222 | + | |
| 223 | + internal class IndigoMinMaxValueCheckConverter : JsonConverter | |
| 224 | + { | |
| 225 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 226 | + | |
| 227 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 228 | + { | |
| 229 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 230 | + var value = serializer.Deserialize<long>(reader); | |
| 231 | + if (value <= 0) | |
| 232 | + { | |
| 233 | + return value; | |
| 234 | + } | |
| 235 | + throw new Exception("Cannot unmarshal type long"); | |
| 236 | + } | |
| 237 | + | |
| 238 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 239 | + { | |
| 240 | + if (untypedValue == null) | |
| 241 | + { | |
| 242 | + serializer.Serialize(writer, null); | |
| 243 | + return; | |
| 244 | + } | |
| 245 | + var value = (long)untypedValue; | |
| 246 | + if (value <= 0) | |
| 247 | + { | |
| 248 | + serializer.Serialize(writer, value); | |
| 249 | + return; | |
| 250 | + } | |
| 251 | + throw new Exception("Cannot marshal type long"); | |
| 252 | + } | |
| 253 | + | |
| 254 | + public static readonly IndigoMinMaxValueCheckConverter Singleton = new IndigoMinMaxValueCheckConverter(); | |
| 255 | + } | |
| 256 | + | |
| 257 | + internal class IndecentMinMaxValueCheckConverter : JsonConverter | |
| 258 | + { | |
| 259 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 260 | + | |
| 261 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 262 | + { | |
| 263 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 264 | + var value = serializer.Deserialize<long>(reader); | |
| 265 | + if (value >= 0) | |
| 266 | + { | |
| 267 | + return value; | |
| 268 | + } | |
| 269 | + throw new Exception("Cannot unmarshal type long"); | |
| 270 | + } | |
| 271 | + | |
| 272 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 273 | + { | |
| 274 | + if (untypedValue == null) | |
| 275 | + { | |
| 276 | + serializer.Serialize(writer, null); | |
| 277 | + return; | |
| 278 | + } | |
| 279 | + var value = (long)untypedValue; | |
| 280 | + if (value >= 0) | |
| 281 | + { | |
| 282 | + serializer.Serialize(writer, value); | |
| 283 | + return; | |
| 284 | + } | |
| 285 | + throw new Exception("Cannot marshal type long"); | |
| 286 | + } | |
| 287 | + | |
| 288 | + public static readonly IndecentMinMaxValueCheckConverter Singleton = new IndecentMinMaxValueCheckConverter(); | |
| 289 | + } | |
| 290 | + | |
| 291 | + internal class HilariousMinMaxValueCheckConverter : JsonConverter | |
| 292 | + { | |
| 293 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 294 | + | |
| 295 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 296 | + { | |
| 297 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 298 | + var value = serializer.Deserialize<long>(reader); | |
| 299 | + if (value >= -100 && value <= 0) | |
| 300 | + { | |
| 301 | + return value; | |
| 302 | + } | |
| 303 | + throw new Exception("Cannot unmarshal type long"); | |
| 304 | + } | |
| 305 | + | |
| 306 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 307 | + { | |
| 308 | + if (untypedValue == null) | |
| 309 | + { | |
| 310 | + serializer.Serialize(writer, null); | |
| 311 | + return; | |
| 312 | + } | |
| 313 | + var value = (long)untypedValue; | |
| 314 | + if (value >= -100 && value <= 0) | |
| 315 | + { | |
| 316 | + serializer.Serialize(writer, value); | |
| 317 | + return; | |
| 318 | + } | |
| 319 | + throw new Exception("Cannot marshal type long"); | |
| 320 | + } | |
| 321 | + | |
| 322 | + public static readonly HilariousMinMaxValueCheckConverter Singleton = new HilariousMinMaxValueCheckConverter(); | |
| 323 | + } | |
| 324 | + | |
| 325 | + internal class AmbitiousMinMaxValueCheckConverter : JsonConverter | |
| 326 | + { | |
| 327 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 328 | + | |
| 329 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 330 | + { | |
| 331 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 332 | + var value = serializer.Deserialize<long>(reader); | |
| 333 | + if (value >= 0 && value <= 100) | |
| 334 | + { | |
| 335 | + return value; | |
| 336 | + } | |
| 337 | + throw new Exception("Cannot unmarshal type long"); | |
| 338 | + } | |
| 339 | + | |
| 340 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 341 | + { | |
| 342 | + if (untypedValue == null) | |
| 343 | + { | |
| 344 | + serializer.Serialize(writer, null); | |
| 345 | + return; | |
| 346 | + } | |
| 347 | + var value = (long)untypedValue; | |
| 348 | + if (value >= 0 && value <= 100) | |
| 349 | + { | |
| 350 | + serializer.Serialize(writer, value); | |
| 351 | + return; | |
| 352 | + } | |
| 353 | + throw new Exception("Cannot marshal type long"); | |
| 354 | + } | |
| 355 | + | |
| 356 | + public static readonly AmbitiousMinMaxValueCheckConverter Singleton = new AmbitiousMinMaxValueCheckConverter(); | |
| 357 | + } | |
| 78 | 358 | } |
| 79 | 359 | #pragma warning restore CS8618 |
| 80 | 360 | #pragma warning restore CS8601 |
Mschema-elixirdefault / QuickType.ex+8 −8
| @@ -21,49 +21,49 @@ defmodule TopLevel do | ||
| 21 | 21 | unbounded: integer() |
| 22 | 22 | } |
| 23 | 23 | |
| 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 | |
| 25 | 25 | def decode_above_i32_max(_), do: {:error, "Unexpected type when decoding TopLevel.above_i32_max"} |
| 26 | 26 | |
| 27 | 27 | def encode_above_i32_max(value) when is_integer(value), do: value |
| 28 | 28 | def encode_above_i32_max(_), do: {:error, "Unexpected type when encoding TopLevel.above_i32_max"} |
| 29 | 29 | |
| 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 | |
| 31 | 31 | def decode_below_i32_min(_), do: {:error, "Unexpected type when decoding TopLevel.below_i32_min"} |
| 32 | 32 | |
| 33 | 33 | def encode_below_i32_min(value) when is_integer(value), do: value |
| 34 | 34 | def encode_below_i32_min(_), do: {:error, "Unexpected type when encoding TopLevel.below_i32_min"} |
| 35 | 35 | |
| 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 | |
| 37 | 37 | def decode_i32_range(_), do: {:error, "Unexpected type when decoding TopLevel.i32_range"} |
| 38 | 38 | |
| 39 | 39 | def encode_i32_range(value) when is_integer(value), do: value |
| 40 | 40 | def encode_i32_range(_), do: {:error, "Unexpected type when encoding TopLevel.i32_range"} |
| 41 | 41 | |
| 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 | |
| 43 | 43 | def decode_large_bounds(_), do: {:error, "Unexpected type when decoding TopLevel.large_bounds"} |
| 44 | 44 | |
| 45 | 45 | def encode_large_bounds(value) when is_integer(value), do: value |
| 46 | 46 | def encode_large_bounds(_), do: {:error, "Unexpected type when encoding TopLevel.large_bounds"} |
| 47 | 47 | |
| 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 | |
| 49 | 49 | def decode_only_maximum(_), do: {:error, "Unexpected type when decoding TopLevel.only_maximum"} |
| 50 | 50 | |
| 51 | 51 | def encode_only_maximum(value) when is_integer(value), do: value |
| 52 | 52 | def encode_only_maximum(_), do: {:error, "Unexpected type when encoding TopLevel.only_maximum"} |
| 53 | 53 | |
| 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 | |
| 55 | 55 | def decode_only_minimum(_), do: {:error, "Unexpected type when decoding TopLevel.only_minimum"} |
| 56 | 56 | |
| 57 | 57 | def encode_only_minimum(value) when is_integer(value), do: value |
| 58 | 58 | def encode_only_minimum(_), do: {:error, "Unexpected type when encoding TopLevel.only_minimum"} |
| 59 | 59 | |
| 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 | |
| 61 | 61 | def decode_small_negative(_), do: {:error, "Unexpected type when decoding TopLevel.small_negative"} |
| 62 | 62 | |
| 63 | 63 | def encode_small_negative(value) when is_integer(value), do: value |
| 64 | 64 | def encode_small_negative(_), do: {:error, "Unexpected type when encoding TopLevel.small_negative"} |
| 65 | 65 | |
| 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 | |
| 67 | 67 | def decode_small_positive(_), do: {:error, "Unexpected type when decoding TopLevel.small_positive"} |
| 68 | 68 | |
| 69 | 69 | def encode_small_positive(value) when is_integer(value), do: value |
Test case
1 generated file · +9 −1test/inputs/schema/intersection-nested.schema
Mschema-elixirdefault / QuickType.ex+9 −1
| @@ -12,9 +12,17 @@ defmodule TopLevel do | ||
| 12 | 12 | intersection: float() | nil |
| 13 | 13 | } |
| 14 | 14 | |
| 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 | + | |
| 15 | 23 | def from_map(m) do |
| 16 | 24 | %TopLevel{ |
| 17 | - intersection: m["intersection"], | |
| 25 | + intersection: m["intersection"] && decode_intersection(m["intersection"]), | |
| 18 | 26 | } |
| 19 | 27 | end |
Test case
1 generated file · +9 −1test/inputs/schema/keyword-unions.schema
Mschema-elixirdefault / QuickType.ex+9 −1
| @@ -9204,6 +9204,14 @@ defmodule TopLevel do | ||
| 9204 | 9204 | def encode_double(value) when is_nil(value), do: value |
| 9205 | 9205 | def encode_double(_), do: {:error, "Unexpected type when encoding TopLevel.double"} |
| 9206 | 9206 | |
| 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 | + | |
| 9207 | 9215 | def decode_dynamic(%{} = value), do: Dynamic.from_map(value) |
| 9208 | 9216 | def decode_dynamic(value) when is_float(value), do: value |
| 9209 | 9217 | def decode_dynamic(value) when is_integer(value), do: value |
| @@ -11682,7 +11690,7 @@ defmodule TopLevel do | ||
| 11682 | 11690 | did_set: decode_did_set(m["didSet"]), |
| 11683 | 11691 | top_level_do: decode_top_level_do(m["do"]), |
| 11684 | 11692 | double: decode_double(m["double"]), |
| 11685 | - dummy: m["dummy"], | |
| 11693 | + dummy: m["dummy"] && decode_dummy(m["dummy"]), | |
| 11686 | 11694 | dynamic: decode_dynamic(m["dynamic"]), |
| 11687 | 11695 | dynamic_cast: decode_dynamic_cast(m["dynamic_cast"]), |
| 11688 | 11696 | elif: decode_elif(m["elif"]), |
Test case
4 generated files · +499 −6test/inputs/schema/minmax-integer.schema
Mschema-csharp-recordsdefault / QuickType.cs+176 −0
| @@ -29,24 +29,30 @@ namespace QuickType | ||
| 29 | 29 | public long Free { get; set; } |
| 30 | 30 | |
| 31 | 31 | [JsonProperty("intersection", Required = Required.Always)] |
| 32 | + [JsonConverter(typeof(PurpleMinMaxValueCheckConverter))] | |
| 32 | 33 | public long Intersection { get; set; } |
| 33 | 34 | |
| 34 | 35 | [JsonProperty("max", Required = Required.Always)] |
| 36 | + [JsonConverter(typeof(FluffyMinMaxValueCheckConverter))] | |
| 35 | 37 | public long Max { get; set; } |
| 36 | 38 | |
| 37 | 39 | [JsonProperty("min", Required = Required.Always)] |
| 40 | + [JsonConverter(typeof(TentacledMinMaxValueCheckConverter))] | |
| 38 | 41 | public long Min { get; set; } |
| 39 | 42 | |
| 40 | 43 | [JsonProperty("minmax", Required = Required.Always)] |
| 44 | + [JsonConverter(typeof(StickyMinMaxValueCheckConverter))] | |
| 41 | 45 | public long Minmax { get; set; } |
| 42 | 46 | |
| 43 | 47 | [JsonProperty("minMaxIntersection", Required = Required.Always)] |
| 48 | + [JsonConverter(typeof(StickyMinMaxValueCheckConverter))] | |
| 44 | 49 | public long MinMaxIntersection { get; set; } |
| 45 | 50 | |
| 46 | 51 | [JsonProperty("minMaxUnion", Required = Required.Always)] |
| 47 | 52 | public long MinMaxUnion { get; set; } |
| 48 | 53 | |
| 49 | 54 | [JsonProperty("union", Required = Required.Always)] |
| 55 | + [JsonConverter(typeof(IndigoMinMaxValueCheckConverter))] | |
| 50 | 56 | public long Union { get; set; } |
| 51 | 57 | } |
| 52 | 58 | |
| @@ -72,6 +78,176 @@ namespace QuickType | ||
| 72 | 78 | }, |
| 73 | 79 | }; |
| 74 | 80 | } |
| 81 | + | |
| 82 | + internal class PurpleMinMaxValueCheckConverter : JsonConverter | |
| 83 | + { | |
| 84 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 85 | + | |
| 86 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 87 | + { | |
| 88 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 89 | + var value = serializer.Deserialize<long>(reader); | |
| 90 | + if (value >= 4 && value <= 5) | |
| 91 | + { | |
| 92 | + return value; | |
| 93 | + } | |
| 94 | + throw new Exception("Cannot unmarshal type long"); | |
| 95 | + } | |
| 96 | + | |
| 97 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 98 | + { | |
| 99 | + if (untypedValue == null) | |
| 100 | + { | |
| 101 | + serializer.Serialize(writer, null); | |
| 102 | + return; | |
| 103 | + } | |
| 104 | + var value = (long)untypedValue; | |
| 105 | + if (value >= 4 && value <= 5) | |
| 106 | + { | |
| 107 | + serializer.Serialize(writer, value); | |
| 108 | + return; | |
| 109 | + } | |
| 110 | + throw new Exception("Cannot marshal type long"); | |
| 111 | + } | |
| 112 | + | |
| 113 | + public static readonly PurpleMinMaxValueCheckConverter Singleton = new PurpleMinMaxValueCheckConverter(); | |
| 114 | + } | |
| 115 | + | |
| 116 | + internal class FluffyMinMaxValueCheckConverter : JsonConverter | |
| 117 | + { | |
| 118 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 119 | + | |
| 120 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 121 | + { | |
| 122 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 123 | + var value = serializer.Deserialize<long>(reader); | |
| 124 | + if (value <= 5) | |
| 125 | + { | |
| 126 | + return value; | |
| 127 | + } | |
| 128 | + throw new Exception("Cannot unmarshal type long"); | |
| 129 | + } | |
| 130 | + | |
| 131 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 132 | + { | |
| 133 | + if (untypedValue == null) | |
| 134 | + { | |
| 135 | + serializer.Serialize(writer, null); | |
| 136 | + return; | |
| 137 | + } | |
| 138 | + var value = (long)untypedValue; | |
| 139 | + if (value <= 5) | |
| 140 | + { | |
| 141 | + serializer.Serialize(writer, value); | |
| 142 | + return; | |
| 143 | + } | |
| 144 | + throw new Exception("Cannot marshal type long"); | |
| 145 | + } | |
| 146 | + | |
| 147 | + public static readonly FluffyMinMaxValueCheckConverter Singleton = new FluffyMinMaxValueCheckConverter(); | |
| 148 | + } | |
| 149 | + | |
| 150 | + internal class TentacledMinMaxValueCheckConverter : JsonConverter | |
| 151 | + { | |
| 152 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 153 | + | |
| 154 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 155 | + { | |
| 156 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 157 | + var value = serializer.Deserialize<long>(reader); | |
| 158 | + if (value >= 3) | |
| 159 | + { | |
| 160 | + return value; | |
| 161 | + } | |
| 162 | + throw new Exception("Cannot unmarshal type long"); | |
| 163 | + } | |
| 164 | + | |
| 165 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 166 | + { | |
| 167 | + if (untypedValue == null) | |
| 168 | + { | |
| 169 | + serializer.Serialize(writer, null); | |
| 170 | + return; | |
| 171 | + } | |
| 172 | + var value = (long)untypedValue; | |
| 173 | + if (value >= 3) | |
| 174 | + { | |
| 175 | + serializer.Serialize(writer, value); | |
| 176 | + return; | |
| 177 | + } | |
| 178 | + throw new Exception("Cannot marshal type long"); | |
| 179 | + } | |
| 180 | + | |
| 181 | + public static readonly TentacledMinMaxValueCheckConverter Singleton = new TentacledMinMaxValueCheckConverter(); | |
| 182 | + } | |
| 183 | + | |
| 184 | + internal class StickyMinMaxValueCheckConverter : JsonConverter | |
| 185 | + { | |
| 186 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 187 | + | |
| 188 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 189 | + { | |
| 190 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 191 | + var value = serializer.Deserialize<long>(reader); | |
| 192 | + if (value >= 3 && value <= 5) | |
| 193 | + { | |
| 194 | + return value; | |
| 195 | + } | |
| 196 | + throw new Exception("Cannot unmarshal type long"); | |
| 197 | + } | |
| 198 | + | |
| 199 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 200 | + { | |
| 201 | + if (untypedValue == null) | |
| 202 | + { | |
| 203 | + serializer.Serialize(writer, null); | |
| 204 | + return; | |
| 205 | + } | |
| 206 | + var value = (long)untypedValue; | |
| 207 | + if (value >= 3 && value <= 5) | |
| 208 | + { | |
| 209 | + serializer.Serialize(writer, value); | |
| 210 | + return; | |
| 211 | + } | |
| 212 | + throw new Exception("Cannot marshal type long"); | |
| 213 | + } | |
| 214 | + | |
| 215 | + public static readonly StickyMinMaxValueCheckConverter Singleton = new StickyMinMaxValueCheckConverter(); | |
| 216 | + } | |
| 217 | + | |
| 218 | + internal class IndigoMinMaxValueCheckConverter : JsonConverter | |
| 219 | + { | |
| 220 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 221 | + | |
| 222 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 223 | + { | |
| 224 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 225 | + var value = serializer.Deserialize<long>(reader); | |
| 226 | + if (value >= 3 && value <= 6) | |
| 227 | + { | |
| 228 | + return value; | |
| 229 | + } | |
| 230 | + throw new Exception("Cannot unmarshal type long"); | |
| 231 | + } | |
| 232 | + | |
| 233 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 234 | + { | |
| 235 | + if (untypedValue == null) | |
| 236 | + { | |
| 237 | + serializer.Serialize(writer, null); | |
| 238 | + return; | |
| 239 | + } | |
| 240 | + var value = (long)untypedValue; | |
| 241 | + if (value >= 3 && value <= 6) | |
| 242 | + { | |
| 243 | + serializer.Serialize(writer, value); | |
| 244 | + return; | |
| 245 | + } | |
| 246 | + throw new Exception("Cannot marshal type long"); | |
| 247 | + } | |
| 248 | + | |
| 249 | + public static readonly IndigoMinMaxValueCheckConverter Singleton = new IndigoMinMaxValueCheckConverter(); | |
| 250 | + } | |
| 75 | 251 | } |
| 76 | 252 | #pragma warning restore CS8618 |
| 77 | 253 | #pragma warning restore CS8601 |
Mschema-csharp-SystemTextJsondefault / QuickType.cs+141 −0
| @@ -28,22 +28,27 @@ namespace QuickType | ||
| 28 | 28 | |
| 29 | 29 | [JsonRequired] |
| 30 | 30 | [JsonPropertyName("intersection")] |
| 31 | + [JsonConverter(typeof(PurpleMinMaxValueCheckConverter))] | |
| 31 | 32 | public long Intersection { get; set; } |
| 32 | 33 | |
| 33 | 34 | [JsonRequired] |
| 34 | 35 | [JsonPropertyName("max")] |
| 36 | + [JsonConverter(typeof(FluffyMinMaxValueCheckConverter))] | |
| 35 | 37 | public long Max { get; set; } |
| 36 | 38 | |
| 37 | 39 | [JsonRequired] |
| 38 | 40 | [JsonPropertyName("min")] |
| 41 | + [JsonConverter(typeof(TentacledMinMaxValueCheckConverter))] | |
| 39 | 42 | public long Min { get; set; } |
| 40 | 43 | |
| 41 | 44 | [JsonRequired] |
| 42 | 45 | [JsonPropertyName("minmax")] |
| 46 | + [JsonConverter(typeof(StickyMinMaxValueCheckConverter))] | |
| 43 | 47 | public long Minmax { get; set; } |
| 44 | 48 | |
| 45 | 49 | [JsonRequired] |
| 46 | 50 | [JsonPropertyName("minMaxIntersection")] |
| 51 | + [JsonConverter(typeof(StickyMinMaxValueCheckConverter))] | |
| 47 | 52 | public long MinMaxIntersection { get; set; } |
| 48 | 53 | |
| 49 | 54 | [JsonRequired] |
| @@ -52,6 +57,7 @@ namespace QuickType | ||
| 52 | 57 | |
| 53 | 58 | [JsonRequired] |
| 54 | 59 | [JsonPropertyName("union")] |
| 60 | + [JsonConverter(typeof(IndigoMinMaxValueCheckConverter))] | |
| 55 | 61 | public long Union { get; set; } |
| 56 | 62 | } |
| 57 | 63 | |
| @@ -77,6 +83,141 @@ namespace QuickType | ||
| 77 | 83 | }, |
| 78 | 84 | }; |
| 79 | 85 | } |
| 86 | + | |
| 87 | + internal class PurpleMinMaxValueCheckConverter : JsonConverter<long> | |
| 88 | + { | |
| 89 | + public override bool CanConvert(Type t) => t == typeof(long); | |
| 90 | + | |
| 91 | + public override long Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) | |
| 92 | + { | |
| 93 | + var value = reader.GetInt64(); | |
| 94 | + if (value >= 4 && value <= 5) | |
| 95 | + { | |
| 96 | + return value; | |
| 97 | + } | |
| 98 | + throw new JsonException("Cannot unmarshal type long"); | |
| 99 | + } | |
| 100 | + | |
| 101 | + public override void Write(Utf8JsonWriter writer, long value, JsonSerializerOptions options) | |
| 102 | + { | |
| 103 | + if (value >= 4 && value <= 5) | |
| 104 | + { | |
| 105 | + JsonSerializer.Serialize(writer, value, options); | |
| 106 | + return; | |
| 107 | + } | |
| 108 | + throw new NotSupportedException("Cannot marshal type long"); | |
| 109 | + } | |
| 110 | + | |
| 111 | + public static readonly PurpleMinMaxValueCheckConverter Singleton = new PurpleMinMaxValueCheckConverter(); | |
| 112 | + } | |
| 113 | + | |
| 114 | + internal class FluffyMinMaxValueCheckConverter : JsonConverter<long> | |
| 115 | + { | |
| 116 | + public override bool CanConvert(Type t) => t == typeof(long); | |
| 117 | + | |
| 118 | + public override long Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) | |
| 119 | + { | |
| 120 | + var value = reader.GetInt64(); | |
| 121 | + if (value <= 5) | |
| 122 | + { | |
| 123 | + return value; | |
| 124 | + } | |
| 125 | + throw new JsonException("Cannot unmarshal type long"); | |
| 126 | + } | |
| 127 | + | |
| 128 | + public override void Write(Utf8JsonWriter writer, long value, JsonSerializerOptions options) | |
| 129 | + { | |
| 130 | + if (value <= 5) | |
| 131 | + { | |
| 132 | + JsonSerializer.Serialize(writer, value, options); | |
| 133 | + return; | |
| 134 | + } | |
| 135 | + throw new NotSupportedException("Cannot marshal type long"); | |
| 136 | + } | |
| 137 | + | |
| 138 | + public static readonly FluffyMinMaxValueCheckConverter Singleton = new FluffyMinMaxValueCheckConverter(); | |
| 139 | + } | |
| 140 | + | |
| 141 | + internal class TentacledMinMaxValueCheckConverter : JsonConverter<long> | |
| 142 | + { | |
| 143 | + public override bool CanConvert(Type t) => t == typeof(long); | |
| 144 | + | |
| 145 | + public override long Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) | |
| 146 | + { | |
| 147 | + var value = reader.GetInt64(); | |
| 148 | + if (value >= 3) | |
| 149 | + { | |
| 150 | + return value; | |
| 151 | + } | |
| 152 | + throw new JsonException("Cannot unmarshal type long"); | |
| 153 | + } | |
| 154 | + | |
| 155 | + public override void Write(Utf8JsonWriter writer, long value, JsonSerializerOptions options) | |
| 156 | + { | |
| 157 | + if (value >= 3) | |
| 158 | + { | |
| 159 | + JsonSerializer.Serialize(writer, value, options); | |
| 160 | + return; | |
| 161 | + } | |
| 162 | + throw new NotSupportedException("Cannot marshal type long"); | |
| 163 | + } | |
| 164 | + | |
| 165 | + public static readonly TentacledMinMaxValueCheckConverter Singleton = new TentacledMinMaxValueCheckConverter(); | |
| 166 | + } | |
| 167 | + | |
| 168 | + internal class StickyMinMaxValueCheckConverter : JsonConverter<long> | |
| 169 | + { | |
| 170 | + public override bool CanConvert(Type t) => t == typeof(long); | |
| 171 | + | |
| 172 | + public override long Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) | |
| 173 | + { | |
| 174 | + var value = reader.GetInt64(); | |
| 175 | + if (value >= 3 && value <= 5) | |
| 176 | + { | |
| 177 | + return value; | |
| 178 | + } | |
| 179 | + throw new JsonException("Cannot unmarshal type long"); | |
| 180 | + } | |
| 181 | + | |
| 182 | + public override void Write(Utf8JsonWriter writer, long value, JsonSerializerOptions options) | |
| 183 | + { | |
| 184 | + if (value >= 3 && value <= 5) | |
| 185 | + { | |
| 186 | + JsonSerializer.Serialize(writer, value, options); | |
| 187 | + return; | |
| 188 | + } | |
| 189 | + throw new NotSupportedException("Cannot marshal type long"); | |
| 190 | + } | |
| 191 | + | |
| 192 | + public static readonly StickyMinMaxValueCheckConverter Singleton = new StickyMinMaxValueCheckConverter(); | |
| 193 | + } | |
| 194 | + | |
| 195 | + internal class IndigoMinMaxValueCheckConverter : JsonConverter<long> | |
| 196 | + { | |
| 197 | + public override bool CanConvert(Type t) => t == typeof(long); | |
| 198 | + | |
| 199 | + public override long Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) | |
| 200 | + { | |
| 201 | + var value = reader.GetInt64(); | |
| 202 | + if (value >= 3 && value <= 6) | |
| 203 | + { | |
| 204 | + return value; | |
| 205 | + } | |
| 206 | + throw new JsonException("Cannot unmarshal type long"); | |
| 207 | + } | |
| 208 | + | |
| 209 | + public override void Write(Utf8JsonWriter writer, long value, JsonSerializerOptions options) | |
| 210 | + { | |
| 211 | + if (value >= 3 && value <= 6) | |
| 212 | + { | |
| 213 | + JsonSerializer.Serialize(writer, value, options); | |
| 214 | + return; | |
| 215 | + } | |
| 216 | + throw new NotSupportedException("Cannot marshal type long"); | |
| 217 | + } | |
| 218 | + | |
| 219 | + public static readonly IndigoMinMaxValueCheckConverter Singleton = new IndigoMinMaxValueCheckConverter(); | |
| 220 | + } | |
| 80 | 221 | |
| 81 | 222 | public class DateOnlyConverter : JsonConverter<DateOnly> |
| 82 | 223 | { |
Mschema-csharpdefault / QuickType.cs+176 −0
| @@ -29,24 +29,30 @@ namespace QuickType | ||
| 29 | 29 | public long Free { get; set; } |
| 30 | 30 | |
| 31 | 31 | [JsonProperty("intersection", Required = Required.Always)] |
| 32 | + [JsonConverter(typeof(PurpleMinMaxValueCheckConverter))] | |
| 32 | 33 | public long Intersection { get; set; } |
| 33 | 34 | |
| 34 | 35 | [JsonProperty("max", Required = Required.Always)] |
| 36 | + [JsonConverter(typeof(FluffyMinMaxValueCheckConverter))] | |
| 35 | 37 | public long Max { get; set; } |
| 36 | 38 | |
| 37 | 39 | [JsonProperty("min", Required = Required.Always)] |
| 40 | + [JsonConverter(typeof(TentacledMinMaxValueCheckConverter))] | |
| 38 | 41 | public long Min { get; set; } |
| 39 | 42 | |
| 40 | 43 | [JsonProperty("minmax", Required = Required.Always)] |
| 44 | + [JsonConverter(typeof(StickyMinMaxValueCheckConverter))] | |
| 41 | 45 | public long Minmax { get; set; } |
| 42 | 46 | |
| 43 | 47 | [JsonProperty("minMaxIntersection", Required = Required.Always)] |
| 48 | + [JsonConverter(typeof(StickyMinMaxValueCheckConverter))] | |
| 44 | 49 | public long MinMaxIntersection { get; set; } |
| 45 | 50 | |
| 46 | 51 | [JsonProperty("minMaxUnion", Required = Required.Always)] |
| 47 | 52 | public long MinMaxUnion { get; set; } |
| 48 | 53 | |
| 49 | 54 | [JsonProperty("union", Required = Required.Always)] |
| 55 | + [JsonConverter(typeof(IndigoMinMaxValueCheckConverter))] | |
| 50 | 56 | public long Union { get; set; } |
| 51 | 57 | } |
| 52 | 58 | |
| @@ -72,6 +78,176 @@ namespace QuickType | ||
| 72 | 78 | }, |
| 73 | 79 | }; |
| 74 | 80 | } |
| 81 | + | |
| 82 | + internal class PurpleMinMaxValueCheckConverter : JsonConverter | |
| 83 | + { | |
| 84 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 85 | + | |
| 86 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 87 | + { | |
| 88 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 89 | + var value = serializer.Deserialize<long>(reader); | |
| 90 | + if (value >= 4 && value <= 5) | |
| 91 | + { | |
| 92 | + return value; | |
| 93 | + } | |
| 94 | + throw new Exception("Cannot unmarshal type long"); | |
| 95 | + } | |
| 96 | + | |
| 97 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 98 | + { | |
| 99 | + if (untypedValue == null) | |
| 100 | + { | |
| 101 | + serializer.Serialize(writer, null); | |
| 102 | + return; | |
| 103 | + } | |
| 104 | + var value = (long)untypedValue; | |
| 105 | + if (value >= 4 && value <= 5) | |
| 106 | + { | |
| 107 | + serializer.Serialize(writer, value); | |
| 108 | + return; | |
| 109 | + } | |
| 110 | + throw new Exception("Cannot marshal type long"); | |
| 111 | + } | |
| 112 | + | |
| 113 | + public static readonly PurpleMinMaxValueCheckConverter Singleton = new PurpleMinMaxValueCheckConverter(); | |
| 114 | + } | |
| 115 | + | |
| 116 | + internal class FluffyMinMaxValueCheckConverter : JsonConverter | |
| 117 | + { | |
| 118 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 119 | + | |
| 120 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 121 | + { | |
| 122 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 123 | + var value = serializer.Deserialize<long>(reader); | |
| 124 | + if (value <= 5) | |
| 125 | + { | |
| 126 | + return value; | |
| 127 | + } | |
| 128 | + throw new Exception("Cannot unmarshal type long"); | |
| 129 | + } | |
| 130 | + | |
| 131 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 132 | + { | |
| 133 | + if (untypedValue == null) | |
| 134 | + { | |
| 135 | + serializer.Serialize(writer, null); | |
| 136 | + return; | |
| 137 | + } | |
| 138 | + var value = (long)untypedValue; | |
| 139 | + if (value <= 5) | |
| 140 | + { | |
| 141 | + serializer.Serialize(writer, value); | |
| 142 | + return; | |
| 143 | + } | |
| 144 | + throw new Exception("Cannot marshal type long"); | |
| 145 | + } | |
| 146 | + | |
| 147 | + public static readonly FluffyMinMaxValueCheckConverter Singleton = new FluffyMinMaxValueCheckConverter(); | |
| 148 | + } | |
| 149 | + | |
| 150 | + internal class TentacledMinMaxValueCheckConverter : JsonConverter | |
| 151 | + { | |
| 152 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 153 | + | |
| 154 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 155 | + { | |
| 156 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 157 | + var value = serializer.Deserialize<long>(reader); | |
| 158 | + if (value >= 3) | |
| 159 | + { | |
| 160 | + return value; | |
| 161 | + } | |
| 162 | + throw new Exception("Cannot unmarshal type long"); | |
| 163 | + } | |
| 164 | + | |
| 165 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 166 | + { | |
| 167 | + if (untypedValue == null) | |
| 168 | + { | |
| 169 | + serializer.Serialize(writer, null); | |
| 170 | + return; | |
| 171 | + } | |
| 172 | + var value = (long)untypedValue; | |
| 173 | + if (value >= 3) | |
| 174 | + { | |
| 175 | + serializer.Serialize(writer, value); | |
| 176 | + return; | |
| 177 | + } | |
| 178 | + throw new Exception("Cannot marshal type long"); | |
| 179 | + } | |
| 180 | + | |
| 181 | + public static readonly TentacledMinMaxValueCheckConverter Singleton = new TentacledMinMaxValueCheckConverter(); | |
| 182 | + } | |
| 183 | + | |
| 184 | + internal class StickyMinMaxValueCheckConverter : JsonConverter | |
| 185 | + { | |
| 186 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 187 | + | |
| 188 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 189 | + { | |
| 190 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 191 | + var value = serializer.Deserialize<long>(reader); | |
| 192 | + if (value >= 3 && value <= 5) | |
| 193 | + { | |
| 194 | + return value; | |
| 195 | + } | |
| 196 | + throw new Exception("Cannot unmarshal type long"); | |
| 197 | + } | |
| 198 | + | |
| 199 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 200 | + { | |
| 201 | + if (untypedValue == null) | |
| 202 | + { | |
| 203 | + serializer.Serialize(writer, null); | |
| 204 | + return; | |
| 205 | + } | |
| 206 | + var value = (long)untypedValue; | |
| 207 | + if (value >= 3 && value <= 5) | |
| 208 | + { | |
| 209 | + serializer.Serialize(writer, value); | |
| 210 | + return; | |
| 211 | + } | |
| 212 | + throw new Exception("Cannot marshal type long"); | |
| 213 | + } | |
| 214 | + | |
| 215 | + public static readonly StickyMinMaxValueCheckConverter Singleton = new StickyMinMaxValueCheckConverter(); | |
| 216 | + } | |
| 217 | + | |
| 218 | + internal class IndigoMinMaxValueCheckConverter : JsonConverter | |
| 219 | + { | |
| 220 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 221 | + | |
| 222 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 223 | + { | |
| 224 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 225 | + var value = serializer.Deserialize<long>(reader); | |
| 226 | + if (value >= 3 && value <= 6) | |
| 227 | + { | |
| 228 | + return value; | |
| 229 | + } | |
| 230 | + throw new Exception("Cannot unmarshal type long"); | |
| 231 | + } | |
| 232 | + | |
| 233 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 234 | + { | |
| 235 | + if (untypedValue == null) | |
| 236 | + { | |
| 237 | + serializer.Serialize(writer, null); | |
| 238 | + return; | |
| 239 | + } | |
| 240 | + var value = (long)untypedValue; | |
| 241 | + if (value >= 3 && value <= 6) | |
| 242 | + { | |
| 243 | + serializer.Serialize(writer, value); | |
| 244 | + return; | |
| 245 | + } | |
| 246 | + throw new Exception("Cannot marshal type long"); | |
| 247 | + } | |
| 248 | + | |
| 249 | + public static readonly IndigoMinMaxValueCheckConverter Singleton = new IndigoMinMaxValueCheckConverter(); | |
| 250 | + } | |
| 75 | 251 | } |
| 76 | 252 | #pragma warning restore CS8618 |
| 77 | 253 | #pragma warning restore CS8601 |
Mschema-elixirdefault / QuickType.ex+6 −6
| @@ -26,31 +26,31 @@ defmodule TopLevel do | ||
| 26 | 26 | def encode_free(value) when is_integer(value), do: value |
| 27 | 27 | def encode_free(_), do: {:error, "Unexpected type when encoding TopLevel.free"} |
| 28 | 28 | |
| 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 | |
| 30 | 30 | def decode_intersection(_), do: {:error, "Unexpected type when decoding TopLevel.intersection"} |
| 31 | 31 | |
| 32 | 32 | def encode_intersection(value) when is_integer(value), do: value |
| 33 | 33 | def encode_intersection(_), do: {:error, "Unexpected type when encoding TopLevel.intersection"} |
| 34 | 34 | |
| 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 | |
| 36 | 36 | def decode_max(_), do: {:error, "Unexpected type when decoding TopLevel.max"} |
| 37 | 37 | |
| 38 | 38 | def encode_max(value) when is_integer(value), do: value |
| 39 | 39 | def encode_max(_), do: {:error, "Unexpected type when encoding TopLevel.max"} |
| 40 | 40 | |
| 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 | |
| 42 | 42 | def decode_min(_), do: {:error, "Unexpected type when decoding TopLevel.min"} |
| 43 | 43 | |
| 44 | 44 | def encode_min(value) when is_integer(value), do: value |
| 45 | 45 | def encode_min(_), do: {:error, "Unexpected type when encoding TopLevel.min"} |
| 46 | 46 | |
| 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 | |
| 48 | 48 | def decode_minmax(_), do: {:error, "Unexpected type when decoding TopLevel.minmax"} |
| 49 | 49 | |
| 50 | 50 | def encode_minmax(value) when is_integer(value), do: value |
| 51 | 51 | def encode_minmax(_), do: {:error, "Unexpected type when encoding TopLevel.minmax"} |
| 52 | 52 | |
| 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 | |
| 54 | 54 | def decode_min_max_intersection(_), do: {:error, "Unexpected type when decoding TopLevel.min_max_intersection"} |
| 55 | 55 | |
| 56 | 56 | def encode_min_max_intersection(value) when is_integer(value), do: value |
| @@ -62,7 +62,7 @@ defmodule TopLevel do | ||
| 62 | 62 | def encode_min_max_union(value) when is_integer(value), do: value |
| 63 | 63 | def encode_min_max_union(_), do: {:error, "Unexpected type when encoding TopLevel.min_max_union"} |
| 64 | 64 | |
| 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 | |
| 66 | 66 | def decode_union(_), do: {:error, "Unexpected type when decoding TopLevel.union"} |
| 67 | 67 | |
| 68 | 68 | def encode_union(value) when is_integer(value), do: value |
Test case
1 generated file · +12 −12test/inputs/schema/minmax.schema
Mschema-elixirdefault / QuickType.ex+12 −12
| @@ -28,40 +28,40 @@ defmodule TopLevel do | ||
| 28 | 28 | def encode_free(value) when is_integer(value), do: value |
| 29 | 29 | def encode_free(_), do: {:error, "Unexpected type when encoding TopLevel.free"} |
| 30 | 30 | |
| 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 | |
| 33 | 33 | def decode_intersection(_), do: {:error, "Unexpected type when decoding TopLevel.intersection"} |
| 34 | 34 | |
| 35 | 35 | def encode_intersection(value) when is_float(value), do: value |
| 36 | 36 | def encode_intersection(value) when is_integer(value), do: value |
| 37 | 37 | def encode_intersection(_), do: {:error, "Unexpected type when encoding TopLevel.intersection"} |
| 38 | 38 | |
| 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 | |
| 41 | 41 | def decode_max(_), do: {:error, "Unexpected type when decoding TopLevel.max"} |
| 42 | 42 | |
| 43 | 43 | def encode_max(value) when is_float(value), do: value |
| 44 | 44 | def encode_max(value) when is_integer(value), do: value |
| 45 | 45 | def encode_max(_), do: {:error, "Unexpected type when encoding TopLevel.max"} |
| 46 | 46 | |
| 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 | |
| 49 | 49 | def decode_min(_), do: {:error, "Unexpected type when decoding TopLevel.min"} |
| 50 | 50 | |
| 51 | 51 | def encode_min(value) when is_float(value), do: value |
| 52 | 52 | def encode_min(value) when is_integer(value), do: value |
| 53 | 53 | def encode_min(_), do: {:error, "Unexpected type when encoding TopLevel.min"} |
| 54 | 54 | |
| 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 | |
| 57 | 57 | def decode_minmax(_), do: {:error, "Unexpected type when decoding TopLevel.minmax"} |
| 58 | 58 | |
| 59 | 59 | def encode_minmax(value) when is_float(value), do: value |
| 60 | 60 | def encode_minmax(value) when is_integer(value), do: value |
| 61 | 61 | def encode_minmax(_), do: {:error, "Unexpected type when encoding TopLevel.minmax"} |
| 62 | 62 | |
| 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 | |
| 65 | 65 | def decode_min_max_intersection(_), do: {:error, "Unexpected type when decoding TopLevel.min_max_intersection"} |
| 66 | 66 | |
| 67 | 67 | def encode_min_max_intersection(value) when is_float(value), do: value |
| @@ -76,8 +76,8 @@ defmodule TopLevel do | ||
| 76 | 76 | def encode_min_max_union(value) when is_integer(value), do: value |
| 77 | 77 | def encode_min_max_union(_), do: {:error, "Unexpected type when encoding TopLevel.min_max_union"} |
| 78 | 78 | |
| 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 | |
| 81 | 81 | def decode_union(_), do: {:error, "Unexpected type when decoding TopLevel.union"} |
| 82 | 82 | |
| 83 | 83 | def encode_union(value) when is_float(value), do: value |
Test case
4 generated files · +127 −12test/inputs/schema/optional-const-ref.schema
Mschema-csharp-recordsdefault / QuickType.cs+39 −3
| @@ -29,6 +29,7 @@ namespace QuickType | ||
| 29 | 29 | public Coordinate[]? Coordinates { get; set; } |
| 30 | 30 | |
| 31 | 31 | [JsonProperty("count", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)] |
| 32 | + [JsonConverter(typeof(PurpleMinMaxValueCheckConverter))] | |
| 32 | 33 | public long? Count { get; set; } |
| 33 | 34 | |
| 34 | 35 | [JsonProperty("label", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)] |
| @@ -39,6 +40,7 @@ namespace QuickType | ||
| 39 | 40 | public Coordinate[] RequiredCoordinates { get; set; } |
| 40 | 41 | |
| 41 | 42 | [JsonProperty("requiredCount", Required = Required.Always)] |
| 43 | + [JsonConverter(typeof(PurpleMinMaxValueCheckConverter))] | |
| 42 | 44 | public long RequiredCount { get; set; } |
| 43 | 45 | |
| 44 | 46 | [JsonProperty("requiredLabel", Required = Required.Always)] |
| @@ -46,7 +48,7 @@ namespace QuickType | ||
| 46 | 48 | public string RequiredLabel { get; set; } |
| 47 | 49 | |
| 48 | 50 | [JsonProperty("weight", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)] |
| 49 | - [JsonConverter(typeof(MinMaxValueCheckConverter))] | |
| 51 | + [JsonConverter(typeof(FluffyMinMaxValueCheckConverter))] | |
| 50 | 52 | public double? Weight { get; set; } |
| 51 | 53 | } |
| 52 | 54 | |
| @@ -82,6 +84,40 @@ namespace QuickType | ||
| 82 | 84 | }; |
| 83 | 85 | } |
| 84 | 86 | |
| 87 | + internal class PurpleMinMaxValueCheckConverter : JsonConverter | |
| 88 | + { | |
| 89 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 90 | + | |
| 91 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 92 | + { | |
| 93 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 94 | + var value = serializer.Deserialize<long>(reader); | |
| 95 | + if (value >= 1 && value <= 100) | |
| 96 | + { | |
| 97 | + return value; | |
| 98 | + } | |
| 99 | + throw new Exception("Cannot unmarshal type long"); | |
| 100 | + } | |
| 101 | + | |
| 102 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 103 | + { | |
| 104 | + if (untypedValue == null) | |
| 105 | + { | |
| 106 | + serializer.Serialize(writer, null); | |
| 107 | + return; | |
| 108 | + } | |
| 109 | + var value = (long)untypedValue; | |
| 110 | + if (value >= 1 && value <= 100) | |
| 111 | + { | |
| 112 | + serializer.Serialize(writer, value); | |
| 113 | + return; | |
| 114 | + } | |
| 115 | + throw new Exception("Cannot marshal type long"); | |
| 116 | + } | |
| 117 | + | |
| 118 | + public static readonly PurpleMinMaxValueCheckConverter Singleton = new PurpleMinMaxValueCheckConverter(); | |
| 119 | + } | |
| 120 | + | |
| 85 | 121 | internal class MinMaxLengthCheckConverter : JsonConverter |
| 86 | 122 | { |
| 87 | 123 | public override bool CanConvert(Type t) => t == typeof(string); |
| @@ -110,7 +146,7 @@ namespace QuickType | ||
| 110 | 146 | public static readonly MinMaxLengthCheckConverter Singleton = new MinMaxLengthCheckConverter(); |
| 111 | 147 | } |
| 112 | 148 | |
| 113 | - internal class MinMaxValueCheckConverter : JsonConverter | |
| 149 | + internal class FluffyMinMaxValueCheckConverter : JsonConverter | |
| 114 | 150 | { |
| 115 | 151 | public override bool CanConvert(Type t) => t == typeof(double) || t == typeof(double?); |
| 116 | 152 | |
| @@ -141,7 +177,7 @@ namespace QuickType | ||
| 141 | 177 | throw new Exception("Cannot marshal type double"); |
| 142 | 178 | } |
| 143 | 179 | |
| 144 | - public static readonly MinMaxValueCheckConverter Singleton = new MinMaxValueCheckConverter(); | |
| 180 | + public static readonly FluffyMinMaxValueCheckConverter Singleton = new FluffyMinMaxValueCheckConverter(); | |
| 145 | 181 | } |
| 146 | 182 | } |
| 147 | 183 | #pragma warning restore CS8618 |
Mschema-csharp-SystemTextJsondefault / QuickType.cs+32 −3
| @@ -28,6 +28,7 @@ namespace QuickType | ||
| 28 | 28 | |
| 29 | 29 | [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] |
| 30 | 30 | [JsonPropertyName("count")] |
| 31 | + [JsonConverter(typeof(PurpleMinMaxValueCheckConverter))] | |
| 31 | 32 | public long? Count { get; set; } |
| 32 | 33 | |
| 33 | 34 | [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] |
| @@ -41,6 +42,7 @@ namespace QuickType | ||
| 41 | 42 | |
| 42 | 43 | [JsonRequired] |
| 43 | 44 | [JsonPropertyName("requiredCount")] |
| 45 | + [JsonConverter(typeof(PurpleMinMaxValueCheckConverter))] | |
| 44 | 46 | public long RequiredCount { get; set; } |
| 45 | 47 | |
| 46 | 48 | [JsonRequired] |
| @@ -50,7 +52,7 @@ namespace QuickType | ||
| 50 | 52 | |
| 51 | 53 | [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] |
| 52 | 54 | [JsonPropertyName("weight")] |
| 53 | - [JsonConverter(typeof(MinMaxValueCheckConverter))] | |
| 55 | + [JsonConverter(typeof(FluffyMinMaxValueCheckConverter))] | |
| 54 | 56 | public double? Weight { get; set; } |
| 55 | 57 | } |
| 56 | 58 | |
| @@ -88,6 +90,33 @@ namespace QuickType | ||
| 88 | 90 | }; |
| 89 | 91 | } |
| 90 | 92 | |
| 93 | + internal class PurpleMinMaxValueCheckConverter : JsonConverter<long> | |
| 94 | + { | |
| 95 | + public override bool CanConvert(Type t) => t == typeof(long); | |
| 96 | + | |
| 97 | + public override long Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) | |
| 98 | + { | |
| 99 | + var value = reader.GetInt64(); | |
| 100 | + if (value >= 1 && value <= 100) | |
| 101 | + { | |
| 102 | + return value; | |
| 103 | + } | |
| 104 | + throw new JsonException("Cannot unmarshal type long"); | |
| 105 | + } | |
| 106 | + | |
| 107 | + public override void Write(Utf8JsonWriter writer, long value, JsonSerializerOptions options) | |
| 108 | + { | |
| 109 | + if (value >= 1 && value <= 100) | |
| 110 | + { | |
| 111 | + JsonSerializer.Serialize(writer, value, options); | |
| 112 | + return; | |
| 113 | + } | |
| 114 | + throw new NotSupportedException("Cannot marshal type long"); | |
| 115 | + } | |
| 116 | + | |
| 117 | + public static readonly PurpleMinMaxValueCheckConverter Singleton = new PurpleMinMaxValueCheckConverter(); | |
| 118 | + } | |
| 119 | + | |
| 91 | 120 | internal class MinMaxLengthCheckConverter : JsonConverter<string> |
| 92 | 121 | { |
| 93 | 122 | public override bool CanConvert(Type t) => t == typeof(string); |
| @@ -115,7 +144,7 @@ namespace QuickType | ||
| 115 | 144 | public static readonly MinMaxLengthCheckConverter Singleton = new MinMaxLengthCheckConverter(); |
| 116 | 145 | } |
| 117 | 146 | |
| 118 | - internal class MinMaxValueCheckConverter : JsonConverter<double> | |
| 147 | + internal class FluffyMinMaxValueCheckConverter : JsonConverter<double> | |
| 119 | 148 | { |
| 120 | 149 | public override bool CanConvert(Type t) => t == typeof(double); |
| 121 | 150 | |
| @@ -139,7 +168,7 @@ namespace QuickType | ||
| 139 | 168 | throw new NotSupportedException("Cannot marshal type double"); |
| 140 | 169 | } |
| 141 | 170 | |
| 142 | - public static readonly MinMaxValueCheckConverter Singleton = new MinMaxValueCheckConverter(); | |
| 171 | + public static readonly FluffyMinMaxValueCheckConverter Singleton = new FluffyMinMaxValueCheckConverter(); | |
| 143 | 172 | } |
| 144 | 173 | |
| 145 | 174 | public class DateOnlyConverter : JsonConverter<DateOnly> |
Mschema-csharpdefault / QuickType.cs+39 −3
| @@ -29,6 +29,7 @@ namespace QuickType | ||
| 29 | 29 | public Coordinate[]? Coordinates { get; set; } |
| 30 | 30 | |
| 31 | 31 | [JsonProperty("count", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)] |
| 32 | + [JsonConverter(typeof(PurpleMinMaxValueCheckConverter))] | |
| 32 | 33 | public long? Count { get; set; } |
| 33 | 34 | |
| 34 | 35 | [JsonProperty("label", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)] |
| @@ -39,6 +40,7 @@ namespace QuickType | ||
| 39 | 40 | public Coordinate[] RequiredCoordinates { get; set; } |
| 40 | 41 | |
| 41 | 42 | [JsonProperty("requiredCount", Required = Required.Always)] |
| 43 | + [JsonConverter(typeof(PurpleMinMaxValueCheckConverter))] | |
| 42 | 44 | public long RequiredCount { get; set; } |
| 43 | 45 | |
| 44 | 46 | [JsonProperty("requiredLabel", Required = Required.Always)] |
| @@ -46,7 +48,7 @@ namespace QuickType | ||
| 46 | 48 | public string RequiredLabel { get; set; } |
| 47 | 49 | |
| 48 | 50 | [JsonProperty("weight", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)] |
| 49 | - [JsonConverter(typeof(MinMaxValueCheckConverter))] | |
| 51 | + [JsonConverter(typeof(FluffyMinMaxValueCheckConverter))] | |
| 50 | 52 | public double? Weight { get; set; } |
| 51 | 53 | } |
| 52 | 54 | |
| @@ -82,6 +84,40 @@ namespace QuickType | ||
| 82 | 84 | }; |
| 83 | 85 | } |
| 84 | 86 | |
| 87 | + internal class PurpleMinMaxValueCheckConverter : JsonConverter | |
| 88 | + { | |
| 89 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 90 | + | |
| 91 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 92 | + { | |
| 93 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 94 | + var value = serializer.Deserialize<long>(reader); | |
| 95 | + if (value >= 1 && value <= 100) | |
| 96 | + { | |
| 97 | + return value; | |
| 98 | + } | |
| 99 | + throw new Exception("Cannot unmarshal type long"); | |
| 100 | + } | |
| 101 | + | |
| 102 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 103 | + { | |
| 104 | + if (untypedValue == null) | |
| 105 | + { | |
| 106 | + serializer.Serialize(writer, null); | |
| 107 | + return; | |
| 108 | + } | |
| 109 | + var value = (long)untypedValue; | |
| 110 | + if (value >= 1 && value <= 100) | |
| 111 | + { | |
| 112 | + serializer.Serialize(writer, value); | |
| 113 | + return; | |
| 114 | + } | |
| 115 | + throw new Exception("Cannot marshal type long"); | |
| 116 | + } | |
| 117 | + | |
| 118 | + public static readonly PurpleMinMaxValueCheckConverter Singleton = new PurpleMinMaxValueCheckConverter(); | |
| 119 | + } | |
| 120 | + | |
| 85 | 121 | internal class MinMaxLengthCheckConverter : JsonConverter |
| 86 | 122 | { |
| 87 | 123 | public override bool CanConvert(Type t) => t == typeof(string); |
| @@ -110,7 +146,7 @@ namespace QuickType | ||
| 110 | 146 | public static readonly MinMaxLengthCheckConverter Singleton = new MinMaxLengthCheckConverter(); |
| 111 | 147 | } |
| 112 | 148 | |
| 113 | - internal class MinMaxValueCheckConverter : JsonConverter | |
| 149 | + internal class FluffyMinMaxValueCheckConverter : JsonConverter | |
| 114 | 150 | { |
| 115 | 151 | public override bool CanConvert(Type t) => t == typeof(double) || t == typeof(double?); |
| 116 | 152 | |
| @@ -141,7 +177,7 @@ namespace QuickType | ||
| 141 | 177 | throw new Exception("Cannot marshal type double"); |
| 142 | 178 | } |
| 143 | 179 | |
| 144 | - public static readonly MinMaxValueCheckConverter Singleton = new MinMaxValueCheckConverter(); | |
| 180 | + public static readonly FluffyMinMaxValueCheckConverter Singleton = new FluffyMinMaxValueCheckConverter(); | |
| 145 | 181 | } |
| 146 | 182 | } |
| 147 | 183 | #pragma warning restore CS8618 |
Mschema-elixirdefault / QuickType.ex+17 −3
| @@ -71,6 +71,12 @@ defmodule TopLevel do | ||
| 71 | 71 | weight: float() | nil |
| 72 | 72 | } |
| 73 | 73 | |
| 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 | + | |
| 74 | 80 | def decode_label(value) when is_binary(value) do |
| 75 | 81 | if String.length(value) >= 2 and String.length(value) <= 16, do: value, else: raise(ArgumentError) |
| 76 | 82 | end |
| @@ -85,7 +91,7 @@ defmodule TopLevel do | ||
| 85 | 91 | def encode_required_coordinates(value) when is_list(value), do: value |
| 86 | 92 | def encode_required_coordinates(_), do: {:error, "Unexpected type when encoding TopLevel.required_coordinates"} |
| 87 | 93 | |
| 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 | |
| 89 | 95 | def decode_required_count(_), do: {:error, "Unexpected type when decoding TopLevel.required_count"} |
| 90 | 96 | |
| 91 | 97 | def encode_required_count(value) when is_integer(value), do: value |
| @@ -99,15 +105,23 @@ defmodule TopLevel do | ||
| 99 | 105 | def encode_required_label(value) when is_binary(value), do: value |
| 100 | 106 | def encode_required_label(_), do: {:error, "Unexpected type when encoding TopLevel.required_label"} |
| 101 | 107 | |
| 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 | + | |
| 102 | 116 | def from_map(m) do |
| 103 | 117 | %TopLevel{ |
| 104 | 118 | coordinates: m["coordinates"] && Enum.map(m["coordinates"], &Coordinate.from_map/1), |
| 105 | - count: m["count"], | |
| 119 | + count: m["count"] && decode_count(m["count"]), | |
| 106 | 120 | label: m["label"] && decode_label(m["label"]), |
| 107 | 121 | required_coordinates: Enum.map(m["requiredCoordinates"], &Coordinate.from_map/1), |
| 108 | 122 | required_count: decode_required_count(m["requiredCount"]), |
| 109 | 123 | required_label: decode_required_label(m["requiredLabel"]), |
| 110 | - weight: m["weight"], | |
| 124 | + weight: m["weight"] && decode_weight(m["weight"]), | |
| 111 | 125 | } |
| 112 | 126 | end |
Test case
4 generated files · +127 −12test/inputs/schema/optional-constraints.schema
Mschema-csharp-recordsdefault / QuickType.cs+39 −3
| @@ -26,10 +26,11 @@ namespace QuickType | ||
| 26 | 26 | public partial record TopLevel |
| 27 | 27 | { |
| 28 | 28 | [JsonProperty("optDouble", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)] |
| 29 | - [JsonConverter(typeof(MinMaxValueCheckConverter))] | |
| 29 | + [JsonConverter(typeof(PurpleMinMaxValueCheckConverter))] | |
| 30 | 30 | public double? OptDouble { get; set; } |
| 31 | 31 | |
| 32 | 32 | [JsonProperty("optInt", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)] |
| 33 | + [JsonConverter(typeof(FluffyMinMaxValueCheckConverter))] | |
| 33 | 34 | public long? OptInt { get; set; } |
| 34 | 35 | |
| 35 | 36 | [JsonProperty("optPattern", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)] |
| @@ -40,6 +41,7 @@ namespace QuickType | ||
| 40 | 41 | public string? OptString { get; set; } |
| 41 | 42 | |
| 42 | 43 | [JsonProperty("reqZeroMin", Required = Required.Always)] |
| 44 | + [JsonConverter(typeof(FluffyMinMaxValueCheckConverter))] | |
| 43 | 45 | public long ReqZeroMin { get; set; } |
| 44 | 46 | } |
| 45 | 47 | |
| @@ -66,7 +68,7 @@ namespace QuickType | ||
| 66 | 68 | }; |
| 67 | 69 | } |
| 68 | 70 | |
| 69 | - internal class MinMaxValueCheckConverter : JsonConverter | |
| 71 | + internal class PurpleMinMaxValueCheckConverter : JsonConverter | |
| 70 | 72 | { |
| 71 | 73 | public override bool CanConvert(Type t) => t == typeof(double) || t == typeof(double?); |
| 72 | 74 | |
| @@ -97,7 +99,41 @@ namespace QuickType | ||
| 97 | 99 | throw new Exception("Cannot marshal type double"); |
| 98 | 100 | } |
| 99 | 101 | |
| 100 | - public static readonly MinMaxValueCheckConverter Singleton = new MinMaxValueCheckConverter(); | |
| 102 | + public static readonly PurpleMinMaxValueCheckConverter Singleton = new PurpleMinMaxValueCheckConverter(); | |
| 103 | + } | |
| 104 | + | |
| 105 | + internal class FluffyMinMaxValueCheckConverter : JsonConverter | |
| 106 | + { | |
| 107 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 108 | + | |
| 109 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 110 | + { | |
| 111 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 112 | + var value = serializer.Deserialize<long>(reader); | |
| 113 | + if (value >= 0 && value <= 100) | |
| 114 | + { | |
| 115 | + return value; | |
| 116 | + } | |
| 117 | + throw new Exception("Cannot unmarshal type long"); | |
| 118 | + } | |
| 119 | + | |
| 120 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 121 | + { | |
| 122 | + if (untypedValue == null) | |
| 123 | + { | |
| 124 | + serializer.Serialize(writer, null); | |
| 125 | + return; | |
| 126 | + } | |
| 127 | + var value = (long)untypedValue; | |
| 128 | + if (value >= 0 && value <= 100) | |
| 129 | + { | |
| 130 | + serializer.Serialize(writer, value); | |
| 131 | + return; | |
| 132 | + } | |
| 133 | + throw new Exception("Cannot marshal type long"); | |
| 134 | + } | |
| 135 | + | |
| 136 | + public static readonly FluffyMinMaxValueCheckConverter Singleton = new FluffyMinMaxValueCheckConverter(); | |
| 101 | 137 | } |
| 102 | 138 | |
| 103 | 139 | internal class MinMaxLengthCheckConverter : JsonConverter |
Mschema-csharp-SystemTextJsondefault / QuickType.cs+32 −3
| @@ -24,11 +24,12 @@ namespace QuickType | ||
| 24 | 24 | { |
| 25 | 25 | [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] |
| 26 | 26 | [JsonPropertyName("optDouble")] |
| 27 | - [JsonConverter(typeof(MinMaxValueCheckConverter))] | |
| 27 | + [JsonConverter(typeof(PurpleMinMaxValueCheckConverter))] | |
| 28 | 28 | public double? OptDouble { get; set; } |
| 29 | 29 | |
| 30 | 30 | [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] |
| 31 | 31 | [JsonPropertyName("optInt")] |
| 32 | + [JsonConverter(typeof(FluffyMinMaxValueCheckConverter))] | |
| 32 | 33 | public long? OptInt { get; set; } |
| 33 | 34 | |
| 34 | 35 | [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] |
| @@ -42,6 +43,7 @@ namespace QuickType | ||
| 42 | 43 | |
| 43 | 44 | [JsonRequired] |
| 44 | 45 | [JsonPropertyName("reqZeroMin")] |
| 46 | + [JsonConverter(typeof(FluffyMinMaxValueCheckConverter))] | |
| 45 | 47 | public long ReqZeroMin { get; set; } |
| 46 | 48 | } |
| 47 | 49 | |
| @@ -68,7 +70,7 @@ namespace QuickType | ||
| 68 | 70 | }; |
| 69 | 71 | } |
| 70 | 72 | |
| 71 | - internal class MinMaxValueCheckConverter : JsonConverter<double> | |
| 73 | + internal class PurpleMinMaxValueCheckConverter : JsonConverter<double> | |
| 72 | 74 | { |
| 73 | 75 | public override bool CanConvert(Type t) => t == typeof(double); |
| 74 | 76 | |
| @@ -92,7 +94,34 @@ namespace QuickType | ||
| 92 | 94 | throw new NotSupportedException("Cannot marshal type double"); |
| 93 | 95 | } |
| 94 | 96 | |
| 95 | - public static readonly MinMaxValueCheckConverter Singleton = new MinMaxValueCheckConverter(); | |
| 97 | + public static readonly PurpleMinMaxValueCheckConverter Singleton = new PurpleMinMaxValueCheckConverter(); | |
| 98 | + } | |
| 99 | + | |
| 100 | + internal class FluffyMinMaxValueCheckConverter : JsonConverter<long> | |
| 101 | + { | |
| 102 | + public override bool CanConvert(Type t) => t == typeof(long); | |
| 103 | + | |
| 104 | + public override long Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) | |
| 105 | + { | |
| 106 | + var value = reader.GetInt64(); | |
| 107 | + if (value >= 0 && value <= 100) | |
| 108 | + { | |
| 109 | + return value; | |
| 110 | + } | |
| 111 | + throw new JsonException("Cannot unmarshal type long"); | |
| 112 | + } | |
| 113 | + | |
| 114 | + public override void Write(Utf8JsonWriter writer, long value, JsonSerializerOptions options) | |
| 115 | + { | |
| 116 | + if (value >= 0 && value <= 100) | |
| 117 | + { | |
| 118 | + JsonSerializer.Serialize(writer, value, options); | |
| 119 | + return; | |
| 120 | + } | |
| 121 | + throw new NotSupportedException("Cannot marshal type long"); | |
| 122 | + } | |
| 123 | + | |
| 124 | + public static readonly FluffyMinMaxValueCheckConverter Singleton = new FluffyMinMaxValueCheckConverter(); | |
| 96 | 125 | } |
| 97 | 126 | |
| 98 | 127 | internal class MinMaxLengthCheckConverter : JsonConverter<string> |
Mschema-csharpdefault / QuickType.cs+39 −3
| @@ -26,10 +26,11 @@ namespace QuickType | ||
| 26 | 26 | public partial class TopLevel |
| 27 | 27 | { |
| 28 | 28 | [JsonProperty("optDouble", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)] |
| 29 | - [JsonConverter(typeof(MinMaxValueCheckConverter))] | |
| 29 | + [JsonConverter(typeof(PurpleMinMaxValueCheckConverter))] | |
| 30 | 30 | public double? OptDouble { get; set; } |
| 31 | 31 | |
| 32 | 32 | [JsonProperty("optInt", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)] |
| 33 | + [JsonConverter(typeof(FluffyMinMaxValueCheckConverter))] | |
| 33 | 34 | public long? OptInt { get; set; } |
| 34 | 35 | |
| 35 | 36 | [JsonProperty("optPattern", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)] |
| @@ -40,6 +41,7 @@ namespace QuickType | ||
| 40 | 41 | public string? OptString { get; set; } |
| 41 | 42 | |
| 42 | 43 | [JsonProperty("reqZeroMin", Required = Required.Always)] |
| 44 | + [JsonConverter(typeof(FluffyMinMaxValueCheckConverter))] | |
| 43 | 45 | public long ReqZeroMin { get; set; } |
| 44 | 46 | } |
| 45 | 47 | |
| @@ -66,7 +68,7 @@ namespace QuickType | ||
| 66 | 68 | }; |
| 67 | 69 | } |
| 68 | 70 | |
| 69 | - internal class MinMaxValueCheckConverter : JsonConverter | |
| 71 | + internal class PurpleMinMaxValueCheckConverter : JsonConverter | |
| 70 | 72 | { |
| 71 | 73 | public override bool CanConvert(Type t) => t == typeof(double) || t == typeof(double?); |
| 72 | 74 | |
| @@ -97,7 +99,41 @@ namespace QuickType | ||
| 97 | 99 | throw new Exception("Cannot marshal type double"); |
| 98 | 100 | } |
| 99 | 101 | |
| 100 | - public static readonly MinMaxValueCheckConverter Singleton = new MinMaxValueCheckConverter(); | |
| 102 | + public static readonly PurpleMinMaxValueCheckConverter Singleton = new PurpleMinMaxValueCheckConverter(); | |
| 103 | + } | |
| 104 | + | |
| 105 | + internal class FluffyMinMaxValueCheckConverter : JsonConverter | |
| 106 | + { | |
| 107 | + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); | |
| 108 | + | |
| 109 | + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) | |
| 110 | + { | |
| 111 | + if (reader.TokenType == JsonToken.Null) return null; | |
| 112 | + var value = serializer.Deserialize<long>(reader); | |
| 113 | + if (value >= 0 && value <= 100) | |
| 114 | + { | |
| 115 | + return value; | |
| 116 | + } | |
| 117 | + throw new Exception("Cannot unmarshal type long"); | |
| 118 | + } | |
| 119 | + | |
| 120 | + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) | |
| 121 | + { | |
| 122 | + if (untypedValue == null) | |
| 123 | + { | |
| 124 | + serializer.Serialize(writer, null); | |
| 125 | + return; | |
| 126 | + } | |
| 127 | + var value = (long)untypedValue; | |
| 128 | + if (value >= 0 && value <= 100) | |
| 129 | + { | |
| 130 | + serializer.Serialize(writer, value); | |
| 131 | + return; | |
| 132 | + } | |
| 133 | + throw new Exception("Cannot marshal type long"); | |
| 134 | + } | |
| 135 | + | |
| 136 | + public static readonly FluffyMinMaxValueCheckConverter Singleton = new FluffyMinMaxValueCheckConverter(); | |
| 101 | 137 | } |
| 102 | 138 | |
| 103 | 139 | internal class MinMaxLengthCheckConverter : JsonConverter |
Mschema-elixirdefault / QuickType.ex+17 −3
| @@ -17,6 +17,20 @@ defmodule TopLevel do | ||
| 17 | 17 | req_zero_min: integer() |
| 18 | 18 | } |
| 19 | 19 | |
| 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 | + | |
| 20 | 34 | def decode_opt_pattern(value) when is_binary(value) do |
| 21 | 35 | if Regex.match?(Regex.compile!("^[a-z]+$"), value), do: value, else: raise(ArgumentError) |
| 22 | 36 | end |
| @@ -33,7 +47,7 @@ defmodule TopLevel do | ||
| 33 | 47 | def encode_opt_string(value) when is_binary(value), do: value |
| 34 | 48 | def encode_opt_string(_), do: {:error, "Unexpected type when encoding TopLevel.opt_string"} |
| 35 | 49 | |
| 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 | |
| 37 | 51 | def decode_req_zero_min(_), do: {:error, "Unexpected type when decoding TopLevel.req_zero_min"} |
| 38 | 52 | |
| 39 | 53 | def encode_req_zero_min(value) when is_integer(value), do: value |
| @@ -41,8 +55,8 @@ defmodule TopLevel do | ||
| 41 | 55 | |
| 42 | 56 | def from_map(m) do |
| 43 | 57 | %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"]), | |
| 46 | 60 | opt_pattern: m["optPattern"] && decode_opt_pattern(m["optPattern"]), |
| 47 | 61 | opt_string: m["optString"] && decode_opt_string(m["optString"]), |
| 48 | 62 | req_zero_min: decode_req_zero_min(m["reqZeroMin"]), |
Test case
1 generated file · +27 −3test/inputs/schema/renaming-bug.schema
Mschema-elixirdefault / QuickType.ex+27 −3
| @@ -12,9 +12,17 @@ defmodule Color do | ||
| 12 | 12 | rgb: float() | nil |
| 13 | 13 | } |
| 14 | 14 | |
| 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 | + | |
| 15 | 23 | def from_map(m) do |
| 16 | 24 | %Color{ |
| 17 | - rgb: m["rgb"], | |
| 25 | + rgb: m["rgb"] && decode_rgb(m["rgb"]), | |
| 18 | 26 | } |
| 19 | 27 | end |
| 20 | 28 | |
| @@ -363,10 +371,26 @@ defmodule Limit do | ||
| 363 | 371 | minimum: float() | nil |
| 364 | 372 | } |
| 365 | 373 | |
| 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 | + | |
| 366 | 390 | def from_map(m) do |
| 367 | 391 | %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"]), | |
| 370 | 394 | } |
| 371 | 395 | end |
Test case
1 generated file · +2 −2test/inputs/schema/schema-constraints.schema
Mschema-elixirdefault / QuickType.ex+2 −2
| @@ -22,8 +22,8 @@ defmodule TopLevel do | ||
| 22 | 22 | def encode_min_max_length(value) when is_binary(value), do: value |
| 23 | 23 | def encode_min_max_length(_), do: {:error, "Unexpected type when encoding TopLevel.min_max_length"} |
| 24 | 24 | |
| 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 | |
| 27 | 27 | def decode_percent(_), do: {:error, "Unexpected type when decoding TopLevel.percent"} |
| 28 | 28 | |
| 29 | 29 | def encode_percent(value) when is_float(value), do: value |
Test case
1 generated file · +16 −2test/inputs/schema/union.schema
Mschema-elixirdefault / QuickType.ex+16 −2
| @@ -15,17 +15,31 @@ defmodule TopLevelElement do | ||
| 15 | 15 | three: float() | nil |
| 16 | 16 | } |
| 17 | 17 | |
| 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 | + | |
| 18 | 24 | def decode_two(value) when is_boolean(value), do: value |
| 19 | 25 | def decode_two(_), do: {:error, "Unexpected type when decoding TopLevelElement.two"} |
| 20 | 26 | |
| 21 | 27 | def encode_two(value) when is_boolean(value), do: value |
| 22 | 28 | def encode_two(_), do: {:error, "Unexpected type when encoding TopLevelElement.two"} |
| 23 | 29 | |
| 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 | + | |
| 24 | 38 | def from_map(m) do |
| 25 | 39 | %TopLevelElement{ |
| 26 | - one: m["one"], | |
| 40 | + one: m["one"] && decode_one(m["one"]), | |
| 27 | 41 | two: decode_two(m["two"]), |
| 28 | - three: m["three"], | |
| 42 | + three: m["three"] && decode_three(m["three"]), | |
| 29 | 43 | } |
| 30 | 44 | end |
Test case
1 generated file · +2,210 −258test/inputs/schema/vega-lite.schema
Mschema-elixirdefault / QuickType.ex+2,210 −258
| @@ -661,27 +661,67 @@ defmodule MarkConfig do | ||
| 661 | 661 | theta: float() | nil |
| 662 | 662 | } |
| 663 | 663 | |
| 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 | + | |
| 664 | 672 | def decode_color(value) when is_binary(value), do: value |
| 665 | 673 | def decode_color(_), do: {:error, "Unexpected type when decoding MarkConfig.color"} |
| 666 | 674 | |
| 667 | 675 | def encode_color(value) when is_binary(value), do: value |
| 668 | 676 | def encode_color(_), do: {:error, "Unexpected type when encoding MarkConfig.color"} |
| 669 | 677 | |
| 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 | + | |
| 670 | 694 | def decode_fill(value) when is_binary(value), do: value |
| 671 | 695 | def decode_fill(_), do: {:error, "Unexpected type when decoding MarkConfig.fill"} |
| 672 | 696 | |
| 673 | 697 | def encode_fill(value) when is_binary(value), do: value |
| 674 | 698 | def encode_fill(_), do: {:error, "Unexpected type when encoding MarkConfig.fill"} |
| 675 | 699 | |
| 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 | + | |
| 676 | 708 | def decode_font(value) when is_binary(value), do: value |
| 677 | 709 | def decode_font(_), do: {:error, "Unexpected type when decoding MarkConfig.font"} |
| 678 | 710 | |
| 679 | 711 | def encode_font(value) when is_binary(value), do: value |
| 680 | 712 | def encode_font(_), do: {:error, "Unexpected type when encoding MarkConfig.font"} |
| 681 | 713 | |
| 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 | + | |
| 682 | 722 | 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 | |
| 685 | 725 | def decode_font_weight(value) when is_nil(value), do: value |
| 686 | 726 | def decode_font_weight(_), do: {:error, "Unexpected type when decoding MarkConfig.font_weight"} |
| 687 | 727 | |
| @@ -697,56 +737,128 @@ defmodule MarkConfig do | ||
| 697 | 737 | def encode_href(value) when is_binary(value), do: value |
| 698 | 738 | def encode_href(_), do: {:error, "Unexpected type when encoding MarkConfig.href"} |
| 699 | 739 | |
| 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 | + | |
| 700 | 764 | def decode_shape(value) when is_binary(value), do: value |
| 701 | 765 | def decode_shape(_), do: {:error, "Unexpected type when decoding MarkConfig.shape"} |
| 702 | 766 | |
| 703 | 767 | def encode_shape(value) when is_binary(value), do: value |
| 704 | 768 | def encode_shape(_), do: {:error, "Unexpected type when encoding MarkConfig.shape"} |
| 705 | 769 | |
| 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 | + | |
| 706 | 778 | def decode_stroke(value) when is_binary(value), do: value |
| 707 | 779 | def decode_stroke(_), do: {:error, "Unexpected type when decoding MarkConfig.stroke"} |
| 708 | 780 | |
| 709 | 781 | def encode_stroke(value) when is_binary(value), do: value |
| 710 | 782 | def encode_stroke(_), do: {:error, "Unexpected type when encoding MarkConfig.stroke"} |
| 711 | 783 | |
| 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 | + | |
| 712 | 816 | def decode_text(value) when is_binary(value), do: value |
| 713 | 817 | def decode_text(_), do: {:error, "Unexpected type when decoding MarkConfig.text"} |
| 714 | 818 | |
| 715 | 819 | def encode_text(value) when is_binary(value), do: value |
| 716 | 820 | def encode_text(_), do: {:error, "Unexpected type when encoding MarkConfig.text"} |
| 717 | 821 | |
| 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 | + | |
| 718 | 830 | def from_map(m) do |
| 719 | 831 | %MarkConfig{ |
| 720 | 832 | align: m["align"] && HorizontalAlign.decode(m["align"]), |
| 721 | - angle: m["angle"], | |
| 833 | + angle: m["angle"] && decode_angle(m["angle"]), | |
| 722 | 834 | baseline: m["baseline"] && VerticalAlign.decode(m["baseline"]), |
| 723 | 835 | color: m["color"] && decode_color(m["color"]), |
| 724 | 836 | 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"]), | |
| 727 | 839 | fill: m["fill"] && decode_fill(m["fill"]), |
| 728 | 840 | filled: m["filled"], |
| 729 | - fill_opacity: m["fillOpacity"], | |
| 841 | + fill_opacity: m["fillOpacity"] && decode_fill_opacity(m["fillOpacity"]), | |
| 730 | 842 | font: m["font"] && decode_font(m["font"]), |
| 731 | - font_size: m["fontSize"], | |
| 843 | + font_size: m["fontSize"] && decode_font_size(m["fontSize"]), | |
| 732 | 844 | font_style: m["fontStyle"] && FontStyle.decode(m["fontStyle"]), |
| 733 | 845 | font_weight: decode_font_weight(m["fontWeight"]), |
| 734 | 846 | href: m["href"] && decode_href(m["href"]), |
| 735 | 847 | 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"]), | |
| 738 | 850 | orient: m["orient"] && Orient.decode(m["orient"]), |
| 739 | - radius: m["radius"], | |
| 851 | + radius: m["radius"] && decode_radius(m["radius"]), | |
| 740 | 852 | shape: m["shape"] && decode_shape(m["shape"]), |
| 741 | - size: m["size"], | |
| 853 | + size: m["size"] && decode_size(m["size"]), | |
| 742 | 854 | stroke: m["stroke"] && decode_stroke(m["stroke"]), |
| 743 | 855 | 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"]), | |
| 748 | 860 | text: m["text"] && decode_text(m["text"]), |
| 749 | - theta: m["theta"], | |
| 861 | + theta: m["theta"] && decode_theta(m["theta"]), | |
| 750 | 862 | } |
| 751 | 863 | end |
| 752 | 864 | |
| @@ -934,18 +1046,58 @@ defmodule AxisConfig do | ||
| 934 | 1046 | title_y: float() | nil |
| 935 | 1047 | } |
| 936 | 1048 | |
| 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 | + | |
| 937 | 1057 | def decode_domain_color(value) when is_binary(value), do: value |
| 938 | 1058 | def decode_domain_color(_), do: {:error, "Unexpected type when decoding AxisConfig.domain_color"} |
| 939 | 1059 | |
| 940 | 1060 | def encode_domain_color(value) when is_binary(value), do: value |
| 941 | 1061 | def encode_domain_color(_), do: {:error, "Unexpected type when encoding AxisConfig.domain_color"} |
| 942 | 1062 | |
| 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 | + | |
| 943 | 1071 | def decode_grid_color(value) when is_binary(value), do: value |
| 944 | 1072 | def decode_grid_color(_), do: {:error, "Unexpected type when decoding AxisConfig.grid_color"} |
| 945 | 1073 | |
| 946 | 1074 | def encode_grid_color(value) when is_binary(value), do: value |
| 947 | 1075 | def encode_grid_color(_), do: {:error, "Unexpected type when encoding AxisConfig.grid_color"} |
| 948 | 1076 | |
| 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 | + | |
| 949 | 1101 | def decode_label_color(value) when is_binary(value), do: value |
| 950 | 1102 | def decode_label_color(_), do: {:error, "Unexpected type when decoding AxisConfig.label_color"} |
| 951 | 1103 | |
| @@ -958,6 +1110,22 @@ defmodule AxisConfig do | ||
| 958 | 1110 | def encode_label_font(value) when is_binary(value), do: value |
| 959 | 1111 | def encode_label_font(_), do: {:error, "Unexpected type when encoding AxisConfig.label_font"} |
| 960 | 1112 | |
| 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 | + | |
| 961 | 1129 | def decode_label_overlap(value) when is_boolean(value), do: value |
| 962 | 1130 | def decode_label_overlap(value) when is_binary(value), do: LabelOverlapEnum.decode(value) |
| 963 | 1131 | def decode_label_overlap(value) when is_nil(value), do: value |
| @@ -968,18 +1136,66 @@ defmodule AxisConfig do | ||
| 968 | 1136 | def encode_label_overlap(value) when is_nil(value), do: value |
| 969 | 1137 | def encode_label_overlap(_), do: {:error, "Unexpected type when encoding AxisConfig.label_overlap"} |
| 970 | 1138 | |
| 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 | + | |
| 971 | 1163 | def decode_tick_color(value) when is_binary(value), do: value |
| 972 | 1164 | def decode_tick_color(_), do: {:error, "Unexpected type when decoding AxisConfig.tick_color"} |
| 973 | 1165 | |
| 974 | 1166 | def encode_tick_color(value) when is_binary(value), do: value |
| 975 | 1167 | def encode_tick_color(_), do: {:error, "Unexpected type when encoding AxisConfig.tick_color"} |
| 976 | 1168 | |
| 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 | + | |
| 977 | 1185 | def decode_title_align(value) when is_binary(value), do: value |
| 978 | 1186 | def decode_title_align(_), do: {:error, "Unexpected type when decoding AxisConfig.title_align"} |
| 979 | 1187 | |
| 980 | 1188 | def encode_title_align(value) when is_binary(value), do: value |
| 981 | 1189 | def encode_title_align(_), do: {:error, "Unexpected type when encoding AxisConfig.title_align"} |
| 982 | 1190 | |
| 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 | + | |
| 983 | 1199 | def decode_title_baseline(value) when is_binary(value), do: value |
| 984 | 1200 | def decode_title_baseline(_), do: {:error, "Unexpected type when decoding AxisConfig.title_baseline"} |
| 985 | 1201 | |
| @@ -998,47 +1214,95 @@ defmodule AxisConfig do | ||
| 998 | 1214 | def encode_title_font(value) when is_binary(value), do: value |
| 999 | 1215 | def encode_title_font(_), do: {:error, "Unexpected type when encoding AxisConfig.title_font"} |
| 1000 | 1216 | |
| 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 | + | |
| 1001 | 1265 | def from_map(m) do |
| 1002 | 1266 | %AxisConfig{ |
| 1003 | - band_position: m["bandPosition"], | |
| 1267 | + band_position: m["bandPosition"] && decode_band_position(m["bandPosition"]), | |
| 1004 | 1268 | domain: m["domain"], |
| 1005 | 1269 | domain_color: m["domainColor"] && decode_domain_color(m["domainColor"]), |
| 1006 | - domain_width: m["domainWidth"], | |
| 1270 | + domain_width: m["domainWidth"] && decode_domain_width(m["domainWidth"]), | |
| 1007 | 1271 | grid: m["grid"], |
| 1008 | 1272 | grid_color: m["gridColor"] && decode_grid_color(m["gridColor"]), |
| 1009 | 1273 | 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"]), | |
| 1013 | 1277 | label_bound: m["labelBound"], |
| 1014 | 1278 | label_color: m["labelColor"] && decode_label_color(m["labelColor"]), |
| 1015 | 1279 | label_flush: m["labelFlush"], |
| 1016 | 1280 | 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"]), | |
| 1019 | 1283 | label_overlap: decode_label_overlap(m["labelOverlap"]), |
| 1020 | - label_padding: m["labelPadding"], | |
| 1284 | + label_padding: m["labelPadding"] && decode_label_padding(m["labelPadding"]), | |
| 1021 | 1285 | 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"]), | |
| 1024 | 1288 | short_time_labels: m["shortTimeLabels"], |
| 1025 | 1289 | tick_color: m["tickColor"] && decode_tick_color(m["tickColor"]), |
| 1026 | 1290 | tick_round: m["tickRound"], |
| 1027 | 1291 | 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"]), | |
| 1030 | 1294 | title_align: m["titleAlign"] && decode_title_align(m["titleAlign"]), |
| 1031 | - title_angle: m["titleAngle"], | |
| 1295 | + title_angle: m["titleAngle"] && decode_title_angle(m["titleAngle"]), | |
| 1032 | 1296 | title_baseline: m["titleBaseline"] && decode_title_baseline(m["titleBaseline"]), |
| 1033 | 1297 | title_color: m["titleColor"] && decode_title_color(m["titleColor"]), |
| 1034 | 1298 | 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"]), | |
| 1036 | 1300 | 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"]), | |
| 1042 | 1306 | } |
| 1043 | 1307 | end |
| 1044 | 1308 | |
| @@ -1197,18 +1461,58 @@ defmodule VGAxisConfig do | ||
| 1197 | 1461 | title_y: float() | nil |
| 1198 | 1462 | } |
| 1199 | 1463 | |
| 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 | + | |
| 1200 | 1472 | def decode_domain_color(value) when is_binary(value), do: value |
| 1201 | 1473 | def decode_domain_color(_), do: {:error, "Unexpected type when decoding VGAxisConfig.domain_color"} |
| 1202 | 1474 | |
| 1203 | 1475 | def encode_domain_color(value) when is_binary(value), do: value |
| 1204 | 1476 | def encode_domain_color(_), do: {:error, "Unexpected type when encoding VGAxisConfig.domain_color"} |
| 1205 | 1477 | |
| 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 | + | |
| 1206 | 1486 | def decode_grid_color(value) when is_binary(value), do: value |
| 1207 | 1487 | def decode_grid_color(_), do: {:error, "Unexpected type when decoding VGAxisConfig.grid_color"} |
| 1208 | 1488 | |
| 1209 | 1489 | def encode_grid_color(value) when is_binary(value), do: value |
| 1210 | 1490 | def encode_grid_color(_), do: {:error, "Unexpected type when encoding VGAxisConfig.grid_color"} |
| 1211 | 1491 | |
| 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 | + | |
| 1212 | 1516 | def decode_label_color(value) when is_binary(value), do: value |
| 1213 | 1517 | def decode_label_color(_), do: {:error, "Unexpected type when decoding VGAxisConfig.label_color"} |
| 1214 | 1518 | |
| @@ -1221,6 +1525,22 @@ defmodule VGAxisConfig do | ||
| 1221 | 1525 | def encode_label_font(value) when is_binary(value), do: value |
| 1222 | 1526 | def encode_label_font(_), do: {:error, "Unexpected type when encoding VGAxisConfig.label_font"} |
| 1223 | 1527 | |
| 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 | + | |
| 1224 | 1544 | def decode_label_overlap(value) when is_boolean(value), do: value |
| 1225 | 1545 | def decode_label_overlap(value) when is_binary(value), do: LabelOverlapEnum.decode(value) |
| 1226 | 1546 | def decode_label_overlap(value) when is_nil(value), do: value |
| @@ -1231,18 +1551,66 @@ defmodule VGAxisConfig do | ||
| 1231 | 1551 | def encode_label_overlap(value) when is_nil(value), do: value |
| 1232 | 1552 | def encode_label_overlap(_), do: {:error, "Unexpected type when encoding VGAxisConfig.label_overlap"} |
| 1233 | 1553 | |
| 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 | + | |
| 1234 | 1578 | def decode_tick_color(value) when is_binary(value), do: value |
| 1235 | 1579 | def decode_tick_color(_), do: {:error, "Unexpected type when decoding VGAxisConfig.tick_color"} |
| 1236 | 1580 | |
| 1237 | 1581 | def encode_tick_color(value) when is_binary(value), do: value |
| 1238 | 1582 | def encode_tick_color(_), do: {:error, "Unexpected type when encoding VGAxisConfig.tick_color"} |
| 1239 | 1583 | |
| 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 | + | |
| 1240 | 1600 | def decode_title_align(value) when is_binary(value), do: value |
| 1241 | 1601 | def decode_title_align(_), do: {:error, "Unexpected type when decoding VGAxisConfig.title_align"} |
| 1242 | 1602 | |
| 1243 | 1603 | def encode_title_align(value) when is_binary(value), do: value |
| 1244 | 1604 | def encode_title_align(_), do: {:error, "Unexpected type when encoding VGAxisConfig.title_align"} |
| 1245 | 1605 | |
| 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 | + | |
| 1246 | 1614 | def decode_title_baseline(value) when is_binary(value), do: value |
| 1247 | 1615 | def decode_title_baseline(_), do: {:error, "Unexpected type when decoding VGAxisConfig.title_baseline"} |
| 1248 | 1616 | |
| @@ -1261,46 +1629,94 @@ defmodule VGAxisConfig do | ||
| 1261 | 1629 | def encode_title_font(value) when is_binary(value), do: value |
| 1262 | 1630 | def encode_title_font(_), do: {:error, "Unexpected type when encoding VGAxisConfig.title_font"} |
| 1263 | 1631 | |
| 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 | + | |
| 1264 | 1680 | def from_map(m) do |
| 1265 | 1681 | %VGAxisConfig{ |
| 1266 | - band_position: m["bandPosition"], | |
| 1682 | + band_position: m["bandPosition"] && decode_band_position(m["bandPosition"]), | |
| 1267 | 1683 | domain: m["domain"], |
| 1268 | 1684 | domain_color: m["domainColor"] && decode_domain_color(m["domainColor"]), |
| 1269 | - domain_width: m["domainWidth"], | |
| 1685 | + domain_width: m["domainWidth"] && decode_domain_width(m["domainWidth"]), | |
| 1270 | 1686 | grid: m["grid"], |
| 1271 | 1687 | grid_color: m["gridColor"] && decode_grid_color(m["gridColor"]), |
| 1272 | 1688 | 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"]), | |
| 1276 | 1692 | label_bound: m["labelBound"], |
| 1277 | 1693 | label_color: m["labelColor"] && decode_label_color(m["labelColor"]), |
| 1278 | 1694 | label_flush: m["labelFlush"], |
| 1279 | 1695 | 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"]), | |
| 1282 | 1698 | label_overlap: decode_label_overlap(m["labelOverlap"]), |
| 1283 | - label_padding: m["labelPadding"], | |
| 1699 | + label_padding: m["labelPadding"] && decode_label_padding(m["labelPadding"]), | |
| 1284 | 1700 | 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"]), | |
| 1287 | 1703 | tick_color: m["tickColor"] && decode_tick_color(m["tickColor"]), |
| 1288 | 1704 | tick_round: m["tickRound"], |
| 1289 | 1705 | 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"]), | |
| 1292 | 1708 | title_align: m["titleAlign"] && decode_title_align(m["titleAlign"]), |
| 1293 | - title_angle: m["titleAngle"], | |
| 1709 | + title_angle: m["titleAngle"] && decode_title_angle(m["titleAngle"]), | |
| 1294 | 1710 | title_baseline: m["titleBaseline"] && decode_title_baseline(m["titleBaseline"]), |
| 1295 | 1711 | title_color: m["titleColor"] && decode_title_color(m["titleColor"]), |
| 1296 | 1712 | 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"]), | |
| 1298 | 1714 | 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"]), | |
| 1304 | 1720 | } |
| 1305 | 1721 | end |
| 1306 | 1722 | |
| @@ -1436,27 +1852,91 @@ defmodule BarConfig do | ||
| 1436 | 1852 | theta: float() | nil |
| 1437 | 1853 | } |
| 1438 | 1854 | |
| 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 | + | |
| 1439 | 1871 | def decode_color(value) when is_binary(value), do: value |
| 1440 | 1872 | def decode_color(_), do: {:error, "Unexpected type when decoding BarConfig.color"} |
| 1441 | 1873 | |
| 1442 | 1874 | def encode_color(value) when is_binary(value), do: value |
| 1443 | 1875 | def encode_color(_), do: {:error, "Unexpected type when encoding BarConfig.color"} |
| 1444 | 1876 | |
| 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 | + | |
| 1445 | 1909 | def decode_fill(value) when is_binary(value), do: value |
| 1446 | 1910 | def decode_fill(_), do: {:error, "Unexpected type when decoding BarConfig.fill"} |
| 1447 | 1911 | |
| 1448 | 1912 | def encode_fill(value) when is_binary(value), do: value |
| 1449 | 1913 | def encode_fill(_), do: {:error, "Unexpected type when encoding BarConfig.fill"} |
| 1450 | 1914 | |
| 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 | + | |
| 1451 | 1923 | def decode_font(value) when is_binary(value), do: value |
| 1452 | 1924 | def decode_font(_), do: {:error, "Unexpected type when decoding BarConfig.font"} |
| 1453 | 1925 | |
| 1454 | 1926 | def encode_font(value) when is_binary(value), do: value |
| 1455 | 1927 | def encode_font(_), do: {:error, "Unexpected type when encoding BarConfig.font"} |
| 1456 | 1928 | |
| 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 | + | |
| 1457 | 1937 | 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 | |
| 1460 | 1940 | def decode_font_weight(value) when is_nil(value), do: value |
| 1461 | 1941 | def decode_font_weight(_), do: {:error, "Unexpected type when decoding BarConfig.font_weight"} |
| 1462 | 1942 | |
| @@ -1472,59 +1952,131 @@ defmodule BarConfig do | ||
| 1472 | 1952 | def encode_href(value) when is_binary(value), do: value |
| 1473 | 1953 | def encode_href(_), do: {:error, "Unexpected type when encoding BarConfig.href"} |
| 1474 | 1954 | |
| 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 | + | |
| 1475 | 1979 | def decode_shape(value) when is_binary(value), do: value |
| 1476 | 1980 | def decode_shape(_), do: {:error, "Unexpected type when decoding BarConfig.shape"} |
| 1477 | 1981 | |
| 1478 | 1982 | def encode_shape(value) when is_binary(value), do: value |
| 1479 | 1983 | def encode_shape(_), do: {:error, "Unexpected type when encoding BarConfig.shape"} |
| 1480 | 1984 | |
| 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 | + | |
| 1481 | 1993 | def decode_stroke(value) when is_binary(value), do: value |
| 1482 | 1994 | def decode_stroke(_), do: {:error, "Unexpected type when decoding BarConfig.stroke"} |
| 1483 | 1995 | |
| 1484 | 1996 | def encode_stroke(value) when is_binary(value), do: value |
| 1485 | 1997 | def encode_stroke(_), do: {:error, "Unexpected type when encoding BarConfig.stroke"} |
| 1486 | 1998 | |
| 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 | + | |
| 1487 | 2031 | def decode_text(value) when is_binary(value), do: value |
| 1488 | 2032 | def decode_text(_), do: {:error, "Unexpected type when decoding BarConfig.text"} |
| 1489 | 2033 | |
| 1490 | 2034 | def encode_text(value) when is_binary(value), do: value |
| 1491 | 2035 | def encode_text(_), do: {:error, "Unexpected type when encoding BarConfig.text"} |
| 1492 | 2036 | |
| 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 | + | |
| 1493 | 2045 | def from_map(m) do |
| 1494 | 2046 | %BarConfig{ |
| 1495 | 2047 | align: m["align"] && HorizontalAlign.decode(m["align"]), |
| 1496 | - angle: m["angle"], | |
| 2048 | + angle: m["angle"] && decode_angle(m["angle"]), | |
| 1497 | 2049 | baseline: m["baseline"] && VerticalAlign.decode(m["baseline"]), |
| 1498 | - bin_spacing: m["binSpacing"], | |
| 2050 | + bin_spacing: m["binSpacing"] && decode_bin_spacing(m["binSpacing"]), | |
| 1499 | 2051 | 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"]), | |
| 1501 | 2053 | 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"]), | |
| 1505 | 2057 | fill: m["fill"] && decode_fill(m["fill"]), |
| 1506 | 2058 | filled: m["filled"], |
| 1507 | - fill_opacity: m["fillOpacity"], | |
| 2059 | + fill_opacity: m["fillOpacity"] && decode_fill_opacity(m["fillOpacity"]), | |
| 1508 | 2060 | font: m["font"] && decode_font(m["font"]), |
| 1509 | - font_size: m["fontSize"], | |
| 2061 | + font_size: m["fontSize"] && decode_font_size(m["fontSize"]), | |
| 1510 | 2062 | font_style: m["fontStyle"] && FontStyle.decode(m["fontStyle"]), |
| 1511 | 2063 | font_weight: decode_font_weight(m["fontWeight"]), |
| 1512 | 2064 | href: m["href"] && decode_href(m["href"]), |
| 1513 | 2065 | 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"]), | |
| 1516 | 2068 | orient: m["orient"] && Orient.decode(m["orient"]), |
| 1517 | - radius: m["radius"], | |
| 2069 | + radius: m["radius"] && decode_radius(m["radius"]), | |
| 1518 | 2070 | shape: m["shape"] && decode_shape(m["shape"]), |
| 1519 | - size: m["size"], | |
| 2071 | + size: m["size"] && decode_size(m["size"]), | |
| 1520 | 2072 | stroke: m["stroke"] && decode_stroke(m["stroke"]), |
| 1521 | 2073 | 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"]), | |
| 1526 | 2078 | text: m["text"] && decode_text(m["text"]), |
| 1527 | - theta: m["theta"], | |
| 2079 | + theta: m["theta"] && decode_theta(m["theta"]), | |
| 1528 | 2080 | } |
| 1529 | 2081 | end |
| 1530 | 2082 | |
| @@ -1829,24 +2381,80 @@ defmodule LegendConfig do | ||
| 1829 | 2381 | title_padding: float() | nil |
| 1830 | 2382 | } |
| 1831 | 2383 | |
| 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 | + | |
| 1832 | 2400 | def decode_fill_color(value) when is_binary(value), do: value |
| 1833 | 2401 | def decode_fill_color(_), do: {:error, "Unexpected type when decoding LegendConfig.fill_color"} |
| 1834 | 2402 | |
| 1835 | 2403 | def encode_fill_color(value) when is_binary(value), do: value |
| 1836 | 2404 | def encode_fill_color(_), do: {:error, "Unexpected type when encoding LegendConfig.fill_color"} |
| 1837 | 2405 | |
| 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 | + | |
| 1838 | 2414 | def decode_gradient_label_baseline(value) when is_binary(value), do: value |
| 1839 | 2415 | def decode_gradient_label_baseline(_), do: {:error, "Unexpected type when decoding LegendConfig.gradient_label_baseline"} |
| 1840 | 2416 | |
| 1841 | 2417 | def encode_gradient_label_baseline(value) when is_binary(value), do: value |
| 1842 | 2418 | def encode_gradient_label_baseline(_), do: {:error, "Unexpected type when encoding LegendConfig.gradient_label_baseline"} |
| 1843 | 2419 | |
| 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 | + | |
| 1844 | 2436 | def decode_gradient_stroke_color(value) when is_binary(value), do: value |
| 1845 | 2437 | def decode_gradient_stroke_color(_), do: {:error, "Unexpected type when decoding LegendConfig.gradient_stroke_color"} |
| 1846 | 2438 | |
| 1847 | 2439 | def encode_gradient_stroke_color(value) when is_binary(value), do: value |
| 1848 | 2440 | def encode_gradient_stroke_color(_), do: {:error, "Unexpected type when encoding LegendConfig.gradient_stroke_color"} |
| 1849 | 2441 | |
| 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 | + | |
| 1850 | 2458 | def decode_label_align(value) when is_binary(value), do: value |
| 1851 | 2459 | def decode_label_align(_), do: {:error, "Unexpected type when decoding LegendConfig.label_align"} |
| 1852 | 2460 | |
| @@ -1871,18 +2479,82 @@ defmodule LegendConfig do | ||
| 1871 | 2479 | def encode_label_font(value) when is_binary(value), do: value |
| 1872 | 2480 | def encode_label_font(_), do: {:error, "Unexpected type when encoding LegendConfig.label_font"} |
| 1873 | 2481 | |
| 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 | + | |
| 1874 | 2522 | def decode_stroke_color(value) when is_binary(value), do: value |
| 1875 | 2523 | def decode_stroke_color(_), do: {:error, "Unexpected type when decoding LegendConfig.stroke_color"} |
| 1876 | 2524 | |
| 1877 | 2525 | def encode_stroke_color(value) when is_binary(value), do: value |
| 1878 | 2526 | def encode_stroke_color(_), do: {:error, "Unexpected type when encoding LegendConfig.stroke_color"} |
| 1879 | 2527 | |
| 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 | + | |
| 1880 | 2536 | def decode_symbol_color(value) when is_binary(value), do: value |
| 1881 | 2537 | def decode_symbol_color(_), do: {:error, "Unexpected type when decoding LegendConfig.symbol_color"} |
| 1882 | 2538 | |
| 1883 | 2539 | def encode_symbol_color(value) when is_binary(value), do: value |
| 1884 | 2540 | def encode_symbol_color(_), do: {:error, "Unexpected type when encoding LegendConfig.symbol_color"} |
| 1885 | 2541 | |
| 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 | + | |
| 1886 | 2558 | def decode_symbol_type(value) when is_binary(value), do: value |
| 1887 | 2559 | def decode_symbol_type(_), do: {:error, "Unexpected type when decoding LegendConfig.symbol_type"} |
| 1888 | 2560 | |
| @@ -1913,44 +2585,68 @@ defmodule LegendConfig do | ||
| 1913 | 2585 | def encode_title_font(value) when is_binary(value), do: value |
| 1914 | 2586 | def encode_title_font(_), do: {:error, "Unexpected type when encoding LegendConfig.title_font"} |
| 1915 | 2587 | |
| 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 | + | |
| 1916 | 2612 | def from_map(m) do |
| 1917 | 2613 | %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"]), | |
| 1920 | 2616 | fill_color: m["fillColor"] && decode_fill_color(m["fillColor"]), |
| 1921 | - gradient_height: m["gradientHeight"], | |
| 2617 | + gradient_height: m["gradientHeight"] && decode_gradient_height(m["gradientHeight"]), | |
| 1922 | 2618 | 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"]), | |
| 1925 | 2621 | 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"]), | |
| 1928 | 2624 | label_align: m["labelAlign"] && decode_label_align(m["labelAlign"]), |
| 1929 | 2625 | label_baseline: m["labelBaseline"] && decode_label_baseline(m["labelBaseline"]), |
| 1930 | 2626 | label_color: m["labelColor"] && decode_label_color(m["labelColor"]), |
| 1931 | 2627 | 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"]), | |
| 1936 | 2632 | orient: m["orient"] && LegendOrient.decode(m["orient"]), |
| 1937 | - padding: m["padding"], | |
| 2633 | + padding: m["padding"] && decode_padding(m["padding"]), | |
| 1938 | 2634 | short_time_labels: m["shortTimeLabels"], |
| 1939 | 2635 | stroke_color: m["strokeColor"] && decode_stroke_color(m["strokeColor"]), |
| 1940 | 2636 | stroke_dash: m["strokeDash"], |
| 1941 | - stroke_width: m["strokeWidth"], | |
| 2637 | + stroke_width: m["strokeWidth"] && decode_stroke_width(m["strokeWidth"]), | |
| 1942 | 2638 | 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"]), | |
| 1945 | 2641 | symbol_type: m["symbolType"] && decode_symbol_type(m["symbolType"]), |
| 1946 | 2642 | title_align: m["titleAlign"] && decode_title_align(m["titleAlign"]), |
| 1947 | 2643 | title_baseline: m["titleBaseline"] && decode_title_baseline(m["titleBaseline"]), |
| 1948 | 2644 | title_color: m["titleColor"] && decode_title_color(m["titleColor"]), |
| 1949 | 2645 | 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"]), | |
| 1951 | 2647 | 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"]), | |
| 1954 | 2650 | } |
| 1955 | 2651 | end |
| 1956 | 2652 | |
| @@ -2018,12 +2714,44 @@ defmodule PaddingClass do | ||
| 2018 | 2714 | top: float() | nil |
| 2019 | 2715 | } |
| 2020 | 2716 | |
| 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 | + | |
| 2021 | 2749 | def from_map(m) do |
| 2022 | 2750 | %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"]), | |
| 2027 | 2755 | } |
| 2028 | 2756 | end |
| 2029 | 2757 | |
| @@ -2150,6 +2878,54 @@ defmodule ProjectionConfig do | ||
| 2150 | 2878 | type: VGProjectionType.t() | nil |
| 2151 | 2879 | } |
| 2152 | 2880 | |
| 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 | + | |
| 2153 | 2929 | def decode_precision_value(value) when is_float(value), do: value |
| 2154 | 2930 | def decode_precision_value(value) when is_integer(value), do: value |
| 2155 | 2931 | def decode_precision_value(value) when is_binary(value), do: value |
| @@ -2160,23 +2936,55 @@ defmodule ProjectionConfig do | ||
| 2160 | 2936 | def encode_precision_value(value) when is_binary(value), do: value |
| 2161 | 2937 | def encode_precision_value(_), do: {:error, "Unexpected type when encoding ProjectionConfig.precision"} |
| 2162 | 2938 | |
| 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 | + | |
| 2163 | 2971 | def from_map(m) do |
| 2164 | 2972 | %ProjectionConfig{ |
| 2165 | 2973 | center: m["center"], |
| 2166 | - clip_angle: m["clipAngle"], | |
| 2974 | + clip_angle: m["clipAngle"] && decode_clip_angle(m["clipAngle"]), | |
| 2167 | 2975 | 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"]), | |
| 2173 | 2981 | precision: m["precision"] |
| 2174 | 2982 | |> 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"]), | |
| 2177 | 2985 | 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"]), | |
| 2180 | 2988 | type: m["type"] && VGProjectionType.decode(m["type"]), |
| 2181 | 2989 | } |
| 2182 | 2990 | end |
| @@ -2225,18 +3033,34 @@ defmodule VGScheme do | ||
| 2225 | 3033 | step: float() | nil |
| 2226 | 3034 | } |
| 2227 | 3035 | |
| 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 | + | |
| 2228 | 3044 | def decode_scheme(value) when is_binary(value), do: value |
| 2229 | 3045 | def decode_scheme(_), do: {:error, "Unexpected type when decoding VGScheme.scheme"} |
| 2230 | 3046 | |
| 2231 | 3047 | def encode_scheme(value) when is_binary(value), do: value |
| 2232 | 3048 | def encode_scheme(_), do: {:error, "Unexpected type when encoding VGScheme.scheme"} |
| 2233 | 3049 | |
| 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 | + | |
| 2234 | 3058 | def from_map(m) do |
| 2235 | 3059 | %VGScheme{ |
| 2236 | - count: m["count"], | |
| 3060 | + count: m["count"] && decode_count(m["count"]), | |
| 2237 | 3061 | extent: m["extent"], |
| 2238 | 3062 | scheme: m["scheme"] && decode_scheme(m["scheme"]), |
| 2239 | - step: m["step"], | |
| 3063 | + step: m["step"] && decode_step(m["step"]), | |
| 2240 | 3064 | } |
| 2241 | 3065 | end |
| 2242 | 3066 | |
| @@ -2312,26 +3136,146 @@ defmodule ScaleConfig do | ||
| 2312 | 3136 | use_unaggregated_domain: boolean() | nil |
| 2313 | 3137 | } |
| 2314 | 3138 | |
| 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 | + | |
| 2315 | 3259 | def from_map(m) do |
| 2316 | 3260 | %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"]), | |
| 2319 | 3263 | 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"]), | |
| 2332 | 3276 | range_step: m["rangeStep"], |
| 2333 | 3277 | round: m["round"], |
| 2334 | - text_x_range_step: m["textXRangeStep"], | |
| 3278 | + text_x_range_step: m["textXRangeStep"] && decode_text_x_range_step(m["textXRangeStep"]), | |
| 2335 | 3279 | use_unaggregated_domain: m["useUnaggregatedDomain"], |
| 2336 | 3280 | } |
| 2337 | 3281 | end |
| @@ -2562,21 +3506,53 @@ defmodule BrushConfig do | ||
| 2562 | 3506 | def encode_fill(value) when is_binary(value), do: value |
| 2563 | 3507 | def encode_fill(_), do: {:error, "Unexpected type when encoding BrushConfig.fill"} |
| 2564 | 3508 | |
| 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 | + | |
| 2565 | 3517 | def decode_stroke(value) when is_binary(value), do: value |
| 2566 | 3518 | def decode_stroke(_), do: {:error, "Unexpected type when decoding BrushConfig.stroke"} |
| 2567 | 3519 | |
| 2568 | 3520 | def encode_stroke(value) when is_binary(value), do: value |
| 2569 | 3521 | def encode_stroke(_), do: {:error, "Unexpected type when encoding BrushConfig.stroke"} |
| 2570 | 3522 | |
| 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 | + | |
| 2571 | 3547 | def from_map(m) do |
| 2572 | 3548 | %BrushConfig{ |
| 2573 | 3549 | fill: m["fill"] && decode_fill(m["fill"]), |
| 2574 | - fill_opacity: m["fillOpacity"], | |
| 3550 | + fill_opacity: m["fillOpacity"] && decode_fill_opacity(m["fillOpacity"]), | |
| 2575 | 3551 | stroke: m["stroke"] && decode_stroke(m["stroke"]), |
| 2576 | 3552 | 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"]), | |
| 2580 | 3556 | } |
| 2581 | 3557 | end |
| 2582 | 3558 | |
| @@ -2822,14 +3798,38 @@ defmodule VGBinding do | ||
| 2822 | 3798 | def encode_input(value) when is_binary(value), do: value |
| 2823 | 3799 | def encode_input(_), do: {:error, "Unexpected type when encoding VGBinding.input"} |
| 2824 | 3800 | |
| 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 | + | |
| 2825 | 3825 | def from_map(m) do |
| 2826 | 3826 | %VGBinding{ |
| 2827 | 3827 | element: m["element"] && decode_element(m["element"]), |
| 2828 | 3828 | input: decode_input(m["input"]), |
| 2829 | 3829 | 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"]), | |
| 2833 | 3833 | } |
| 2834 | 3834 | end |
| 2835 | 3835 | |
| @@ -3085,21 +4085,61 @@ defmodule VGMarkConfig do | ||
| 3085 | 4085 | theta: float() | nil |
| 3086 | 4086 | } |
| 3087 | 4087 | |
| 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 | + | |
| 3088 | 4112 | def decode_fill(value) when is_binary(value), do: value |
| 3089 | 4113 | def decode_fill(_), do: {:error, "Unexpected type when decoding VGMarkConfig.fill"} |
| 3090 | 4114 | |
| 3091 | 4115 | def encode_fill(value) when is_binary(value), do: value |
| 3092 | 4116 | def encode_fill(_), do: {:error, "Unexpected type when encoding VGMarkConfig.fill"} |
| 3093 | 4117 | |
| 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 | + | |
| 3094 | 4126 | def decode_font(value) when is_binary(value), do: value |
| 3095 | 4127 | def decode_font(_), do: {:error, "Unexpected type when decoding VGMarkConfig.font"} |
| 3096 | 4128 | |
| 3097 | 4129 | def encode_font(value) when is_binary(value), do: value |
| 3098 | 4130 | def encode_font(_), do: {:error, "Unexpected type when encoding VGMarkConfig.font"} |
| 3099 | 4131 | |
| 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 | + | |
| 3100 | 4140 | 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 | |
| 3103 | 4143 | def decode_font_weight(value) when is_nil(value), do: value |
| 3104 | 4144 | def decode_font_weight(_), do: {:error, "Unexpected type when decoding VGMarkConfig.font_weight"} |
| 3105 | 4145 | |
| @@ -3115,54 +4155,126 @@ defmodule VGMarkConfig do | ||
| 3115 | 4155 | def encode_href(value) when is_binary(value), do: value |
| 3116 | 4156 | def encode_href(_), do: {:error, "Unexpected type when encoding VGMarkConfig.href"} |
| 3117 | 4157 | |
| 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 | + | |
| 3118 | 4182 | def decode_shape(value) when is_binary(value), do: value |
| 3119 | 4183 | def decode_shape(_), do: {:error, "Unexpected type when decoding VGMarkConfig.shape"} |
| 3120 | 4184 | |
| 3121 | 4185 | def encode_shape(value) when is_binary(value), do: value |
| 3122 | 4186 | def encode_shape(_), do: {:error, "Unexpected type when encoding VGMarkConfig.shape"} |
| 3123 | 4187 | |
| 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 | + | |
| 3124 | 4196 | def decode_stroke(value) when is_binary(value), do: value |
| 3125 | 4197 | def decode_stroke(_), do: {:error, "Unexpected type when decoding VGMarkConfig.stroke"} |
| 3126 | 4198 | |
| 3127 | 4199 | def encode_stroke(value) when is_binary(value), do: value |
| 3128 | 4200 | def encode_stroke(_), do: {:error, "Unexpected type when encoding VGMarkConfig.stroke"} |
| 3129 | 4201 | |
| 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 | + | |
| 3130 | 4234 | def decode_text(value) when is_binary(value), do: value |
| 3131 | 4235 | def decode_text(_), do: {:error, "Unexpected type when decoding VGMarkConfig.text"} |
| 3132 | 4236 | |
| 3133 | 4237 | def encode_text(value) when is_binary(value), do: value |
| 3134 | 4238 | def encode_text(_), do: {:error, "Unexpected type when encoding VGMarkConfig.text"} |
| 3135 | 4239 | |
| 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 | + | |
| 3136 | 4248 | def from_map(m) do |
| 3137 | 4249 | %VGMarkConfig{ |
| 3138 | 4250 | align: m["align"] && HorizontalAlign.decode(m["align"]), |
| 3139 | - angle: m["angle"], | |
| 4251 | + angle: m["angle"] && decode_angle(m["angle"]), | |
| 3140 | 4252 | baseline: m["baseline"] && VerticalAlign.decode(m["baseline"]), |
| 3141 | 4253 | 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"]), | |
| 3144 | 4256 | fill: m["fill"] && decode_fill(m["fill"]), |
| 3145 | - fill_opacity: m["fillOpacity"], | |
| 4257 | + fill_opacity: m["fillOpacity"] && decode_fill_opacity(m["fillOpacity"]), | |
| 3146 | 4258 | font: m["font"] && decode_font(m["font"]), |
| 3147 | - font_size: m["fontSize"], | |
| 4259 | + font_size: m["fontSize"] && decode_font_size(m["fontSize"]), | |
| 3148 | 4260 | font_style: m["fontStyle"] && FontStyle.decode(m["fontStyle"]), |
| 3149 | 4261 | font_weight: decode_font_weight(m["fontWeight"]), |
| 3150 | 4262 | href: m["href"] && decode_href(m["href"]), |
| 3151 | 4263 | 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"]), | |
| 3154 | 4266 | orient: m["orient"] && Orient.decode(m["orient"]), |
| 3155 | - radius: m["radius"], | |
| 4267 | + radius: m["radius"] && decode_radius(m["radius"]), | |
| 3156 | 4268 | shape: m["shape"] && decode_shape(m["shape"]), |
| 3157 | - size: m["size"], | |
| 4269 | + size: m["size"] && decode_size(m["size"]), | |
| 3158 | 4270 | stroke: m["stroke"] && decode_stroke(m["stroke"]), |
| 3159 | 4271 | 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"]), | |
| 3164 | 4276 | text: m["text"] && decode_text(m["text"]), |
| 3165 | - theta: m["theta"], | |
| 4277 | + theta: m["theta"] && decode_theta(m["theta"]), | |
| 3166 | 4278 | } |
| 3167 | 4279 | end |
| 3168 | 4280 | |
| @@ -3284,27 +4396,67 @@ defmodule TextConfig do | ||
| 3284 | 4396 | theta: float() | nil |
| 3285 | 4397 | } |
| 3286 | 4398 | |
| 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 | + | |
| 3287 | 4407 | def decode_color(value) when is_binary(value), do: value |
| 3288 | 4408 | def decode_color(_), do: {:error, "Unexpected type when decoding TextConfig.color"} |
| 3289 | 4409 | |
| 3290 | 4410 | def encode_color(value) when is_binary(value), do: value |
| 3291 | 4411 | def encode_color(_), do: {:error, "Unexpected type when encoding TextConfig.color"} |
| 3292 | 4412 | |
| 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 | + | |
| 3293 | 4429 | def decode_fill(value) when is_binary(value), do: value |
| 3294 | 4430 | def decode_fill(_), do: {:error, "Unexpected type when decoding TextConfig.fill"} |
| 3295 | 4431 | |
| 3296 | 4432 | def encode_fill(value) when is_binary(value), do: value |
| 3297 | 4433 | def encode_fill(_), do: {:error, "Unexpected type when encoding TextConfig.fill"} |
| 3298 | 4434 | |
| 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 | + | |
| 3299 | 4443 | def decode_font(value) when is_binary(value), do: value |
| 3300 | 4444 | def decode_font(_), do: {:error, "Unexpected type when decoding TextConfig.font"} |
| 3301 | 4445 | |
| 3302 | 4446 | def encode_font(value) when is_binary(value), do: value |
| 3303 | 4447 | def encode_font(_), do: {:error, "Unexpected type when encoding TextConfig.font"} |
| 3304 | 4448 | |
| 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 | + | |
| 3305 | 4457 | 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 | |
| 3308 | 4460 | def decode_font_weight(value) when is_nil(value), do: value |
| 3309 | 4461 | def decode_font_weight(_), do: {:error, "Unexpected type when decoding TextConfig.font_weight"} |
| 3310 | 4462 | |
| @@ -3320,57 +4472,129 @@ defmodule TextConfig do | ||
| 3320 | 4472 | def encode_href(value) when is_binary(value), do: value |
| 3321 | 4473 | def encode_href(_), do: {:error, "Unexpected type when encoding TextConfig.href"} |
| 3322 | 4474 | |
| 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 | + | |
| 3323 | 4499 | def decode_shape(value) when is_binary(value), do: value |
| 3324 | 4500 | def decode_shape(_), do: {:error, "Unexpected type when decoding TextConfig.shape"} |
| 3325 | 4501 | |
| 3326 | 4502 | def encode_shape(value) when is_binary(value), do: value |
| 3327 | 4503 | def encode_shape(_), do: {:error, "Unexpected type when encoding TextConfig.shape"} |
| 3328 | 4504 | |
| 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 | + | |
| 3329 | 4513 | def decode_stroke(value) when is_binary(value), do: value |
| 3330 | 4514 | def decode_stroke(_), do: {:error, "Unexpected type when decoding TextConfig.stroke"} |
| 3331 | 4515 | |
| 3332 | 4516 | def encode_stroke(value) when is_binary(value), do: value |
| 3333 | 4517 | def encode_stroke(_), do: {:error, "Unexpected type when encoding TextConfig.stroke"} |
| 3334 | 4518 | |
| 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 | + | |
| 3335 | 4551 | def decode_text(value) when is_binary(value), do: value |
| 3336 | 4552 | def decode_text(_), do: {:error, "Unexpected type when decoding TextConfig.text"} |
| 3337 | 4553 | |
| 3338 | 4554 | def encode_text(value) when is_binary(value), do: value |
| 3339 | 4555 | def encode_text(_), do: {:error, "Unexpected type when encoding TextConfig.text"} |
| 3340 | 4556 | |
| 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 | + | |
| 3341 | 4565 | def from_map(m) do |
| 3342 | 4566 | %TextConfig{ |
| 3343 | 4567 | align: m["align"] && HorizontalAlign.decode(m["align"]), |
| 3344 | - angle: m["angle"], | |
| 4568 | + angle: m["angle"] && decode_angle(m["angle"]), | |
| 3345 | 4569 | baseline: m["baseline"] && VerticalAlign.decode(m["baseline"]), |
| 3346 | 4570 | color: m["color"] && decode_color(m["color"]), |
| 3347 | 4571 | 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"]), | |
| 3350 | 4574 | fill: m["fill"] && decode_fill(m["fill"]), |
| 3351 | 4575 | filled: m["filled"], |
| 3352 | - fill_opacity: m["fillOpacity"], | |
| 4576 | + fill_opacity: m["fillOpacity"] && decode_fill_opacity(m["fillOpacity"]), | |
| 3353 | 4577 | font: m["font"] && decode_font(m["font"]), |
| 3354 | - font_size: m["fontSize"], | |
| 4578 | + font_size: m["fontSize"] && decode_font_size(m["fontSize"]), | |
| 3355 | 4579 | font_style: m["fontStyle"] && FontStyle.decode(m["fontStyle"]), |
| 3356 | 4580 | font_weight: decode_font_weight(m["fontWeight"]), |
| 3357 | 4581 | href: m["href"] && decode_href(m["href"]), |
| 3358 | 4582 | 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"]), | |
| 3361 | 4585 | orient: m["orient"] && Orient.decode(m["orient"]), |
| 3362 | - radius: m["radius"], | |
| 4586 | + radius: m["radius"] && decode_radius(m["radius"]), | |
| 3363 | 4587 | shape: m["shape"] && decode_shape(m["shape"]), |
| 3364 | 4588 | short_time_labels: m["shortTimeLabels"], |
| 3365 | - size: m["size"], | |
| 4589 | + size: m["size"] && decode_size(m["size"]), | |
| 3366 | 4590 | stroke: m["stroke"] && decode_stroke(m["stroke"]), |
| 3367 | 4591 | 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"]), | |
| 3372 | 4596 | text: m["text"] && decode_text(m["text"]), |
| 3373 | - theta: m["theta"], | |
| 4597 | + theta: m["theta"] && decode_theta(m["theta"]), | |
| 3374 | 4598 | } |
| 3375 | 4599 | end |
| 3376 | 4600 | |
| @@ -3497,27 +4721,75 @@ defmodule TickConfig do | ||
| 3497 | 4721 | thickness: float() | nil |
| 3498 | 4722 | } |
| 3499 | 4723 | |
| 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 | + | |
| 3500 | 4740 | def decode_color(value) when is_binary(value), do: value |
| 3501 | 4741 | def decode_color(_), do: {:error, "Unexpected type when decoding TickConfig.color"} |
| 3502 | 4742 | |
| 3503 | 4743 | def encode_color(value) when is_binary(value), do: value |
| 3504 | 4744 | def encode_color(_), do: {:error, "Unexpected type when encoding TickConfig.color"} |
| 3505 | 4745 | |
| 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 | + | |
| 3506 | 4762 | def decode_fill(value) when is_binary(value), do: value |
| 3507 | 4763 | def decode_fill(_), do: {:error, "Unexpected type when decoding TickConfig.fill"} |
| 3508 | 4764 | |
| 3509 | 4765 | def encode_fill(value) when is_binary(value), do: value |
| 3510 | 4766 | def encode_fill(_), do: {:error, "Unexpected type when encoding TickConfig.fill"} |
| 3511 | 4767 | |
| 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 | + | |
| 3512 | 4776 | def decode_font(value) when is_binary(value), do: value |
| 3513 | 4777 | def decode_font(_), do: {:error, "Unexpected type when decoding TickConfig.font"} |
| 3514 | 4778 | |
| 3515 | 4779 | def encode_font(value) when is_binary(value), do: value |
| 3516 | 4780 | def encode_font(_), do: {:error, "Unexpected type when encoding TickConfig.font"} |
| 3517 | 4781 | |
| 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 | + | |
| 3518 | 4790 | 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 | |
| 3521 | 4793 | def decode_font_weight(value) when is_nil(value), do: value |
| 3522 | 4794 | def decode_font_weight(_), do: {:error, "Unexpected type when decoding TickConfig.font_weight"} |
| 3523 | 4795 | |
| @@ -3533,58 +4805,138 @@ defmodule TickConfig do | ||
| 3533 | 4805 | def encode_href(value) when is_binary(value), do: value |
| 3534 | 4806 | def encode_href(_), do: {:error, "Unexpected type when encoding TickConfig.href"} |
| 3535 | 4807 | |
| 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 | + | |
| 3536 | 4832 | def decode_shape(value) when is_binary(value), do: value |
| 3537 | 4833 | def decode_shape(_), do: {:error, "Unexpected type when decoding TickConfig.shape"} |
| 3538 | 4834 | |
| 3539 | 4835 | def encode_shape(value) when is_binary(value), do: value |
| 3540 | 4836 | def encode_shape(_), do: {:error, "Unexpected type when encoding TickConfig.shape"} |
| 3541 | 4837 | |
| 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 | + | |
| 3542 | 4846 | def decode_stroke(value) when is_binary(value), do: value |
| 3543 | 4847 | def decode_stroke(_), do: {:error, "Unexpected type when decoding TickConfig.stroke"} |
| 3544 | 4848 | |
| 3545 | 4849 | def encode_stroke(value) when is_binary(value), do: value |
| 3546 | 4850 | def encode_stroke(_), do: {:error, "Unexpected type when encoding TickConfig.stroke"} |
| 3547 | 4851 | |
| 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 | + | |
| 3548 | 4884 | def decode_text(value) when is_binary(value), do: value |
| 3549 | 4885 | def decode_text(_), do: {:error, "Unexpected type when decoding TickConfig.text"} |
| 3550 | 4886 | |
| 3551 | 4887 | def encode_text(value) when is_binary(value), do: value |
| 3552 | 4888 | def encode_text(_), do: {:error, "Unexpected type when encoding TickConfig.text"} |
| 3553 | 4889 | |
| 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 | + | |
| 3554 | 4906 | def from_map(m) do |
| 3555 | 4907 | %TickConfig{ |
| 3556 | 4908 | 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"]), | |
| 3559 | 4911 | baseline: m["baseline"] && VerticalAlign.decode(m["baseline"]), |
| 3560 | 4912 | color: m["color"] && decode_color(m["color"]), |
| 3561 | 4913 | 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"]), | |
| 3564 | 4916 | fill: m["fill"] && decode_fill(m["fill"]), |
| 3565 | 4917 | filled: m["filled"], |
| 3566 | - fill_opacity: m["fillOpacity"], | |
| 4918 | + fill_opacity: m["fillOpacity"] && decode_fill_opacity(m["fillOpacity"]), | |
| 3567 | 4919 | font: m["font"] && decode_font(m["font"]), |
| 3568 | - font_size: m["fontSize"], | |
| 4920 | + font_size: m["fontSize"] && decode_font_size(m["fontSize"]), | |
| 3569 | 4921 | font_style: m["fontStyle"] && FontStyle.decode(m["fontStyle"]), |
| 3570 | 4922 | font_weight: decode_font_weight(m["fontWeight"]), |
| 3571 | 4923 | href: m["href"] && decode_href(m["href"]), |
| 3572 | 4924 | 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"]), | |
| 3575 | 4927 | orient: m["orient"] && Orient.decode(m["orient"]), |
| 3576 | - radius: m["radius"], | |
| 4928 | + radius: m["radius"] && decode_radius(m["radius"]), | |
| 3577 | 4929 | shape: m["shape"] && decode_shape(m["shape"]), |
| 3578 | - size: m["size"], | |
| 4930 | + size: m["size"] && decode_size(m["size"]), | |
| 3579 | 4931 | stroke: m["stroke"] && decode_stroke(m["stroke"]), |
| 3580 | 4932 | 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"]), | |
| 3585 | 4937 | 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"]), | |
| 3588 | 4940 | } |
| 3589 | 4941 | end |
| 3590 | 4942 | |
| @@ -3789,6 +5141,14 @@ defmodule VGTitleConfig do | ||
| 3789 | 5141 | orient: TitleOrient.t() | nil |
| 3790 | 5142 | } |
| 3791 | 5143 | |
| 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 | + | |
| 3792 | 5152 | def decode_color(value) when is_binary(value), do: value |
| 3793 | 5153 | def decode_color(_), do: {:error, "Unexpected type when decoding VGTitleConfig.color"} |
| 3794 | 5154 | |
| @@ -3801,9 +5161,17 @@ defmodule VGTitleConfig do | ||
| 3801 | 5161 | def encode_font(value) when is_binary(value), do: value |
| 3802 | 5162 | def encode_font(_), do: {:error, "Unexpected type when encoding VGTitleConfig.font"} |
| 3803 | 5163 | |
| 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 | + | |
| 3804 | 5172 | 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 | |
| 3807 | 5175 | def decode_font_weight(value) when is_nil(value), do: value |
| 3808 | 5176 | def decode_font_weight(_), do: {:error, "Unexpected type when decoding VGTitleConfig.font_weight"} |
| 3809 | 5177 | |
| @@ -3813,17 +5181,33 @@ defmodule VGTitleConfig do | ||
| 3813 | 5181 | def encode_font_weight(value) when is_nil(value), do: value |
| 3814 | 5182 | def encode_font_weight(_), do: {:error, "Unexpected type when encoding VGTitleConfig.font_weight"} |
| 3815 | 5183 | |
| 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 | + | |
| 3816 | 5200 | def from_map(m) do |
| 3817 | 5201 | %VGTitleConfig{ |
| 3818 | 5202 | anchor: m["anchor"] && Anchor.decode(m["anchor"]), |
| 3819 | - angle: m["angle"], | |
| 5203 | + angle: m["angle"] && decode_angle(m["angle"]), | |
| 3820 | 5204 | baseline: m["baseline"] && VerticalAlign.decode(m["baseline"]), |
| 3821 | 5205 | color: m["color"] && decode_color(m["color"]), |
| 3822 | 5206 | font: m["font"] && decode_font(m["font"]), |
| 3823 | - font_size: m["fontSize"], | |
| 5207 | + font_size: m["fontSize"] && decode_font_size(m["fontSize"]), | |
| 3824 | 5208 | 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"]), | |
| 3827 | 5211 | orient: m["orient"] && TitleOrient.decode(m["orient"]), |
| 3828 | 5212 | } |
| 3829 | 5213 | end |
| @@ -3892,24 +5276,72 @@ defmodule ViewConfig do | ||
| 3892 | 5276 | def encode_fill(value) when is_binary(value), do: value |
| 3893 | 5277 | def encode_fill(_), do: {:error, "Unexpected type when encoding ViewConfig.fill"} |
| 3894 | 5278 | |
| 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 | + | |
| 3895 | 5295 | def decode_stroke(value) when is_binary(value), do: value |
| 3896 | 5296 | def decode_stroke(_), do: {:error, "Unexpected type when decoding ViewConfig.stroke"} |
| 3897 | 5297 | |
| 3898 | 5298 | def encode_stroke(value) when is_binary(value), do: value |
| 3899 | 5299 | def encode_stroke(_), do: {:error, "Unexpected type when encoding ViewConfig.stroke"} |
| 3900 | 5300 | |
| 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 | + | |
| 3901 | 5333 | def from_map(m) do |
| 3902 | 5334 | %ViewConfig{ |
| 3903 | 5335 | clip: m["clip"], |
| 3904 | 5336 | 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"]), | |
| 3907 | 5339 | stroke: m["stroke"] && decode_stroke(m["stroke"]), |
| 3908 | 5340 | 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"]), | |
| 3913 | 5345 | } |
| 3914 | 5346 | end |
| 3915 | 5347 | |
| @@ -4550,15 +5982,47 @@ defmodule BinParams do | ||
| 4550 | 5982 | steps: [float()] | nil |
| 4551 | 5983 | } |
| 4552 | 5984 | |
| 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 | + | |
| 4553 | 6017 | def from_map(m) do |
| 4554 | 6018 | %BinParams{ |
| 4555 | - base: m["base"], | |
| 6019 | + base: m["base"] && decode_base(m["base"]), | |
| 4556 | 6020 | divide: m["divide"], |
| 4557 | 6021 | 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"]), | |
| 4560 | 6024 | nice: m["nice"], |
| 4561 | - step: m["step"], | |
| 6025 | + step: m["step"] && decode_step(m["step"]), | |
| 4562 | 6026 | steps: m["steps"], |
| 4563 | 6027 | } |
| 4564 | 6028 | end |
| @@ -4686,18 +6150,74 @@ defmodule DateTimeClass do | ||
| 4686 | 6150 | year: float() | nil |
| 4687 | 6151 | } |
| 4688 | 6152 | |
| 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 | + | |
| 4689 | 6209 | def from_map(m) do |
| 4690 | 6210 | %DateTimeClass{ |
| 4691 | - date: m["date"], | |
| 6211 | + date: m["date"] && decode_date(m["date"]), | |
| 4692 | 6212 | 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"]), | |
| 4696 | 6216 | 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"]), | |
| 4699 | 6219 | utc: m["utc"], |
| 4700 | - year: m["year"], | |
| 6220 | + year: m["year"] && decode_year(m["year"]), | |
| 4701 | 6221 | } |
| 4702 | 6222 | end |
| 4703 | 6223 | |
| @@ -5208,12 +6728,44 @@ defmodule Legend do | ||
| 5208 | 6728 | zindex: float() | nil |
| 5209 | 6729 | } |
| 5210 | 6730 | |
| 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 | + | |
| 5211 | 6739 | def decode_format(value) when is_binary(value), do: value |
| 5212 | 6740 | def decode_format(_), do: {:error, "Unexpected type when decoding Legend.format"} |
| 5213 | 6741 | |
| 5214 | 6742 | def encode_format(value) when is_binary(value), do: value |
| 5215 | 6743 | def encode_format(_), do: {:error, "Unexpected type when encoding Legend.format"} |
| 5216 | 6744 | |
| 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 | + | |
| 5217 | 6769 | def decode_values_element(%{} = value), do: DateTimeClass.from_map(value) |
| 5218 | 6770 | def decode_values_element(value) when is_float(value), do: value |
| 5219 | 6771 | def decode_values_element(value) when is_integer(value), do: value |
| @@ -5226,18 +6778,26 @@ defmodule Legend do | ||
| 5226 | 6778 | def encode_values_element(value) when is_binary(value), do: value |
| 5227 | 6779 | def encode_values_element(_), do: {:error, "Unexpected type when encoding Legend.values"} |
| 5228 | 6780 | |
| 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 | + | |
| 5229 | 6789 | def from_map(m) do |
| 5230 | 6790 | %Legend{ |
| 5231 | - entry_padding: m["entryPadding"], | |
| 6791 | + entry_padding: m["entryPadding"] && decode_entry_padding(m["entryPadding"]), | |
| 5232 | 6792 | format: m["format"] && decode_format(m["format"]), |
| 5233 | - offset: m["offset"], | |
| 6793 | + offset: m["offset"] && decode_offset(m["offset"]), | |
| 5234 | 6794 | 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"]), | |
| 5237 | 6797 | title: m["title"], |
| 5238 | 6798 | type: m["type"] && LegendType.decode(m["type"]), |
| 5239 | 6799 | values: m["values"] && Enum.map(m["values"], &decode_values_element/1), |
| 5240 | - zindex: m["zindex"], | |
| 6800 | + zindex: m["zindex"] && decode_zindex(m["zindex"]), | |
| 5241 | 6801 | } |
| 5242 | 6802 | end |
| 5243 | 6803 | |
| @@ -5433,9 +6993,17 @@ defmodule InterpolateParams do | ||
| 5433 | 6993 | type: InterpolateParamsType.t() |
| 5434 | 6994 | } |
| 5435 | 6995 | |
| 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 | + | |
| 5436 | 7004 | def from_map(m) do |
| 5437 | 7005 | %InterpolateParams{ |
| 5438 | - gamma: m["gamma"], | |
| 7006 | + gamma: m["gamma"] && decode_gamma(m["gamma"]), | |
| 5439 | 7007 | type: InterpolateParamsType.decode(m["type"]), |
| 5440 | 7008 | } |
| 5441 | 7009 | end |
| @@ -5726,6 +7294,14 @@ defmodule Scale do | ||
| 5726 | 7294 | zero: boolean() | nil |
| 5727 | 7295 | } |
| 5728 | 7296 | |
| 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 | + | |
| 5729 | 7305 | def decode_domain(%{"selection" => _,} = value), do: DomainClass.from_map(value) |
| 5730 | 7306 | def decode_domain(value) when is_binary(value), do: Domain.decode(value) |
| 5731 | 7307 | def decode_domain(value) when is_list(value), do: value |
| @@ -5738,6 +7314,14 @@ defmodule Scale do | ||
| 5738 | 7314 | def encode_domain(value) when is_nil(value), do: value |
| 5739 | 7315 | def encode_domain(_), do: {:error, "Unexpected type when encoding Scale.domain"} |
| 5740 | 7316 | |
| 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 | + | |
| 5741 | 7325 | def decode_interpolate(%{"type" => _,} = value), do: InterpolateParams.from_map(value) |
| 5742 | 7326 | def decode_interpolate(value) when is_binary(value), do: Interpolate.decode(value) |
| 5743 | 7327 | def decode_interpolate(value) when is_nil(value), do: value |
| @@ -5764,6 +7348,30 @@ defmodule Scale do | ||
| 5764 | 7348 | def encode_nice(value) when is_nil(value), do: value |
| 5765 | 7349 | def encode_nice(_), do: {:error, "Unexpected type when encoding Scale.nice"} |
| 5766 | 7350 | |
| 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 | + | |
| 5767 | 7375 | def decode_range(value) when is_binary(value), do: value |
| 5768 | 7376 | def decode_range(value) when is_list(value), do: value |
| 5769 | 7377 | def decode_range(value) when is_nil(value), do: value |
| @@ -5786,15 +7394,15 @@ defmodule Scale do | ||
| 5786 | 7394 | |
| 5787 | 7395 | def from_map(m) do |
| 5788 | 7396 | %Scale{ |
| 5789 | - base: m["base"], | |
| 7397 | + base: m["base"] && decode_base(m["base"]), | |
| 5790 | 7398 | clamp: m["clamp"], |
| 5791 | 7399 | domain: decode_domain(m["domain"]), |
| 5792 | - exponent: m["exponent"], | |
| 7400 | + exponent: m["exponent"] && decode_exponent(m["exponent"]), | |
| 5793 | 7401 | interpolate: decode_interpolate(m["interpolate"]), |
| 5794 | 7402 | 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"]), | |
| 5798 | 7406 | range: decode_range(m["range"]), |
| 5799 | 7407 | range_step: m["rangeStep"], |
| 5800 | 7408 | round: m["round"], |
| @@ -6300,10 +7908,18 @@ defmodule Header do | ||
| 6300 | 7908 | def encode_format(value) when is_binary(value), do: value |
| 6301 | 7909 | def encode_format(_), do: {:error, "Unexpected type when encoding Header.format"} |
| 6302 | 7910 | |
| 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 | + | |
| 6303 | 7919 | def from_map(m) do |
| 6304 | 7920 | %Header{ |
| 6305 | 7921 | format: m["format"] && decode_format(m["format"]), |
| 6306 | - label_angle: m["labelAngle"], | |
| 7922 | + label_angle: m["labelAngle"] && decode_label_angle(m["labelAngle"]), | |
| 6307 | 7923 | title: m["title"], |
| 6308 | 7924 | } |
| 6309 | 7925 | end |
| @@ -7059,6 +8675,14 @@ defmodule Axis do | ||
| 7059 | 8675 | def encode_format(value) when is_binary(value), do: value |
| 7060 | 8676 | def encode_format(_), do: {:error, "Unexpected type when encoding Axis.format"} |
| 7061 | 8677 | |
| 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 | + | |
| 7062 | 8686 | def decode_label_overlap(value) when is_boolean(value), do: value |
| 7063 | 8687 | def decode_label_overlap(value) when is_binary(value), do: LabelOverlapEnum.decode(value) |
| 7064 | 8688 | def decode_label_overlap(value) when is_nil(value), do: value |
| @@ -7069,6 +8693,78 @@ defmodule Axis do | ||
| 7069 | 8693 | def encode_label_overlap(value) when is_nil(value), do: value |
| 7070 | 8694 | def encode_label_overlap(_), do: {:error, "Unexpected type when encoding Axis.label_overlap"} |
| 7071 | 8695 | |
| 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 | + | |
| 7072 | 8768 | def decode_values_element(%{} = value), do: DateTimeClass.from_map(value) |
| 7073 | 8769 | def decode_values_element(value) when is_float(value), do: value |
| 7074 | 8770 | def decode_values_element(value) when is_integer(value), do: value |
| @@ -7079,30 +8775,38 @@ defmodule Axis do | ||
| 7079 | 8775 | def encode_values_element(value) when is_integer(value), do: value |
| 7080 | 8776 | def encode_values_element(_), do: {:error, "Unexpected type when encoding Axis.values"} |
| 7081 | 8777 | |
| 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 | + | |
| 7082 | 8786 | def from_map(m) do |
| 7083 | 8787 | %Axis{ |
| 7084 | 8788 | domain: m["domain"], |
| 7085 | 8789 | format: m["format"] && decode_format(m["format"]), |
| 7086 | 8790 | grid: m["grid"], |
| 7087 | - label_angle: m["labelAngle"], | |
| 8791 | + label_angle: m["labelAngle"] && decode_label_angle(m["labelAngle"]), | |
| 7088 | 8792 | label_bound: m["labelBound"], |
| 7089 | 8793 | label_flush: m["labelFlush"], |
| 7090 | 8794 | label_overlap: decode_label_overlap(m["labelOverlap"]), |
| 7091 | - label_padding: m["labelPadding"], | |
| 8795 | + label_padding: m["labelPadding"] && decode_label_padding(m["labelPadding"]), | |
| 7092 | 8796 | 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"]), | |
| 7096 | 8800 | 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"]), | |
| 7099 | 8803 | ticks: m["ticks"], |
| 7100 | - tick_size: m["tickSize"], | |
| 8804 | + tick_size: m["tickSize"] && decode_tick_size(m["tickSize"]), | |
| 7101 | 8805 | 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"]), | |
| 7104 | 8808 | values: m["values"] && Enum.map(m["values"], &decode_values_element/1), |
| 7105 | - zindex: m["zindex"], | |
| 8809 | + zindex: m["zindex"] && decode_zindex(m["zindex"]), | |
| 7106 | 8810 | } |
| 7107 | 8811 | end |
| 7108 | 8812 | |
| @@ -7734,27 +9438,67 @@ defmodule MarkDef do | ||
| 7734 | 9438 | type: Mark.t() |
| 7735 | 9439 | } |
| 7736 | 9440 | |
| 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 | + | |
| 7737 | 9449 | def decode_color(value) when is_binary(value), do: value |
| 7738 | 9450 | def decode_color(_), do: {:error, "Unexpected type when decoding MarkDef.color"} |
| 7739 | 9451 | |
| 7740 | 9452 | def encode_color(value) when is_binary(value), do: value |
| 7741 | 9453 | def encode_color(_), do: {:error, "Unexpected type when encoding MarkDef.color"} |
| 7742 | 9454 | |
| 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 | + | |
| 7743 | 9471 | def decode_fill(value) when is_binary(value), do: value |
| 7744 | 9472 | def decode_fill(_), do: {:error, "Unexpected type when decoding MarkDef.fill"} |
| 7745 | 9473 | |
| 7746 | 9474 | def encode_fill(value) when is_binary(value), do: value |
| 7747 | 9475 | def encode_fill(_), do: {:error, "Unexpected type when encoding MarkDef.fill"} |
| 7748 | 9476 | |
| 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 | + | |
| 7749 | 9485 | def decode_font(value) when is_binary(value), do: value |
| 7750 | 9486 | def decode_font(_), do: {:error, "Unexpected type when decoding MarkDef.font"} |
| 7751 | 9487 | |
| 7752 | 9488 | def encode_font(value) when is_binary(value), do: value |
| 7753 | 9489 | def encode_font(_), do: {:error, "Unexpected type when encoding MarkDef.font"} |
| 7754 | 9490 | |
| 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 | + | |
| 7755 | 9499 | 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 | |
| 7758 | 9502 | def decode_font_weight(value) when is_nil(value), do: value |
| 7759 | 9503 | def decode_font_weight(_), do: {:error, "Unexpected type when decoding MarkDef.font_weight"} |
| 7760 | 9504 | |
| @@ -7770,18 +9514,74 @@ defmodule MarkDef do | ||
| 7770 | 9514 | def encode_href(value) when is_binary(value), do: value |
| 7771 | 9515 | def encode_href(_), do: {:error, "Unexpected type when encoding MarkDef.href"} |
| 7772 | 9516 | |
| 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 | + | |
| 7773 | 9541 | def decode_shape(value) when is_binary(value), do: value |
| 7774 | 9542 | def decode_shape(_), do: {:error, "Unexpected type when decoding MarkDef.shape"} |
| 7775 | 9543 | |
| 7776 | 9544 | def encode_shape(value) when is_binary(value), do: value |
| 7777 | 9545 | def encode_shape(_), do: {:error, "Unexpected type when encoding MarkDef.shape"} |
| 7778 | 9546 | |
| 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 | + | |
| 7779 | 9555 | def decode_stroke(value) when is_binary(value), do: value |
| 7780 | 9556 | def decode_stroke(_), do: {:error, "Unexpected type when decoding MarkDef.stroke"} |
| 7781 | 9557 | |
| 7782 | 9558 | def encode_stroke(value) when is_binary(value), do: value |
| 7783 | 9559 | def encode_stroke(_), do: {:error, "Unexpected type when encoding MarkDef.stroke"} |
| 7784 | 9560 | |
| 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 | + | |
| 7785 | 9585 | def decode_style(value) when is_binary(value), do: value |
| 7786 | 9586 | def decode_style(value) when is_list(value), do: value |
| 7787 | 9587 | def decode_style(value) when is_nil(value), do: value |
| @@ -7792,46 +9592,62 @@ defmodule MarkDef do | ||
| 7792 | 9592 | def encode_style(value) when is_nil(value), do: value |
| 7793 | 9593 | def encode_style(_), do: {:error, "Unexpected type when encoding MarkDef.style"} |
| 7794 | 9594 | |
| 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 | + | |
| 7795 | 9603 | def decode_text(value) when is_binary(value), do: value |
| 7796 | 9604 | def decode_text(_), do: {:error, "Unexpected type when decoding MarkDef.text"} |
| 7797 | 9605 | |
| 7798 | 9606 | def encode_text(value) when is_binary(value), do: value |
| 7799 | 9607 | def encode_text(_), do: {:error, "Unexpected type when encoding MarkDef.text"} |
| 7800 | 9608 | |
| 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 | + | |
| 7801 | 9617 | def from_map(m) do |
| 7802 | 9618 | %MarkDef{ |
| 7803 | 9619 | align: m["align"] && HorizontalAlign.decode(m["align"]), |
| 7804 | - angle: m["angle"], | |
| 9620 | + angle: m["angle"] && decode_angle(m["angle"]), | |
| 7805 | 9621 | baseline: m["baseline"] && VerticalAlign.decode(m["baseline"]), |
| 7806 | 9622 | clip: m["clip"], |
| 7807 | 9623 | color: m["color"] && decode_color(m["color"]), |
| 7808 | 9624 | 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"]), | |
| 7811 | 9627 | fill: m["fill"] && decode_fill(m["fill"]), |
| 7812 | 9628 | filled: m["filled"], |
| 7813 | - fill_opacity: m["fillOpacity"], | |
| 9629 | + fill_opacity: m["fillOpacity"] && decode_fill_opacity(m["fillOpacity"]), | |
| 7814 | 9630 | font: m["font"] && decode_font(m["font"]), |
| 7815 | - font_size: m["fontSize"], | |
| 9631 | + font_size: m["fontSize"] && decode_font_size(m["fontSize"]), | |
| 7816 | 9632 | font_style: m["fontStyle"] && FontStyle.decode(m["fontStyle"]), |
| 7817 | 9633 | font_weight: decode_font_weight(m["fontWeight"]), |
| 7818 | 9634 | href: m["href"] && decode_href(m["href"]), |
| 7819 | 9635 | 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"]), | |
| 7822 | 9638 | orient: m["orient"] && Orient.decode(m["orient"]), |
| 7823 | - radius: m["radius"], | |
| 9639 | + radius: m["radius"] && decode_radius(m["radius"]), | |
| 7824 | 9640 | shape: m["shape"] && decode_shape(m["shape"]), |
| 7825 | - size: m["size"], | |
| 9641 | + size: m["size"] && decode_size(m["size"]), | |
| 7826 | 9642 | stroke: m["stroke"] && decode_stroke(m["stroke"]), |
| 7827 | 9643 | 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"]), | |
| 7831 | 9647 | style: decode_style(m["style"]), |
| 7832 | - tension: m["tension"], | |
| 9648 | + tension: m["tension"] && decode_tension(m["tension"]), | |
| 7833 | 9649 | text: m["text"] && decode_text(m["text"]), |
| 7834 | - theta: m["theta"], | |
| 9650 | + theta: m["theta"] && decode_theta(m["theta"]), | |
| 7835 | 9651 | type: Mark.decode(m["type"]), |
| 7836 | 9652 | } |
| 7837 | 9653 | end |
| @@ -7921,6 +9737,54 @@ defmodule Projection do | ||
| 7921 | 9737 | type: VGProjectionType.t() | nil |
| 7922 | 9738 | } |
| 7923 | 9739 | |
| 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 | + | |
| 7924 | 9788 | def decode_precision_value(value) when is_float(value), do: value |
| 7925 | 9789 | def decode_precision_value(value) when is_integer(value), do: value |
| 7926 | 9790 | def decode_precision_value(value) when is_binary(value), do: value |
| @@ -7931,23 +9795,55 @@ defmodule Projection do | ||
| 7931 | 9795 | def encode_precision_value(value) when is_binary(value), do: value |
| 7932 | 9796 | def encode_precision_value(_), do: {:error, "Unexpected type when encoding Projection.precision"} |
| 7933 | 9797 | |
| 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 | + | |
| 7934 | 9830 | def from_map(m) do |
| 7935 | 9831 | %Projection{ |
| 7936 | 9832 | center: m["center"], |
| 7937 | - clip_angle: m["clipAngle"], | |
| 9833 | + clip_angle: m["clipAngle"] && decode_clip_angle(m["clipAngle"]), | |
| 7938 | 9834 | 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"]), | |
| 7944 | 9840 | precision: m["precision"] |
| 7945 | 9841 | |> 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"]), | |
| 7948 | 9844 | 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"]), | |
| 7951 | 9847 | type: m["type"] && VGProjectionType.decode(m["type"]), |
| 7952 | 9848 | } |
| 7953 | 9849 | end |
| @@ -8365,6 +10261,14 @@ defmodule TitleParams do | ||
| 8365 | 10261 | text: String.t() |
| 8366 | 10262 | } |
| 8367 | 10263 | |
| 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 | + | |
| 8368 | 10272 | def decode_style(value) when is_binary(value), do: value |
| 8369 | 10273 | def decode_style(value) when is_list(value), do: value |
| 8370 | 10274 | def decode_style(value) when is_nil(value), do: value |
| @@ -8384,7 +10288,7 @@ defmodule TitleParams do | ||
| 8384 | 10288 | def from_map(m) do |
| 8385 | 10289 | %TitleParams{ |
| 8386 | 10290 | anchor: m["anchor"] && Anchor.decode(m["anchor"]), |
| 8387 | - offset: m["offset"], | |
| 10291 | + offset: m["offset"] && decode_offset(m["offset"]), | |
| 8388 | 10292 | orient: m["orient"] && TitleOrient.decode(m["orient"]), |
| 8389 | 10293 | style: decode_style(m["style"]), |
| 8390 | 10294 | text: decode_text(m["text"]), |
| @@ -8695,6 +10599,14 @@ defmodule LayerSpec do | ||
| 8695 | 10599 | def encode_description(value) when is_binary(value), do: value |
| 8696 | 10600 | def encode_description(_), do: {:error, "Unexpected type when encoding LayerSpec.description"} |
| 8697 | 10601 | |
| 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 | + | |
| 8698 | 10610 | def decode_name(value) when is_binary(value), do: value |
| 8699 | 10611 | def decode_name(_), do: {:error, "Unexpected type when decoding LayerSpec.name"} |
| 8700 | 10612 | |
| @@ -8711,6 +10623,14 @@ defmodule LayerSpec do | ||
| 8711 | 10623 | def encode_title(value) when is_nil(value), do: value |
| 8712 | 10624 | def encode_title(_), do: {:error, "Unexpected type when encoding LayerSpec.title"} |
| 8713 | 10625 | |
| 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 | + | |
| 8714 | 10634 | def decode_mark(%{"type" => _,} = value), do: MarkDef.from_map(value) |
| 8715 | 10635 | def decode_mark(value) when is_binary(value), do: Mark.decode(value) |
| 8716 | 10636 | def decode_mark(value) when is_nil(value), do: value |
| @@ -8725,13 +10645,13 @@ defmodule LayerSpec do | ||
| 8725 | 10645 | %LayerSpec{ |
| 8726 | 10646 | data: m["data"] && Data.from_map(m["data"]), |
| 8727 | 10647 | description: m["description"] && decode_description(m["description"]), |
| 8728 | - height: m["height"], | |
| 10648 | + height: m["height"] && decode_height(m["height"]), | |
| 8729 | 10649 | layer: m["layer"] && Enum.map(m["layer"], &LayerSpec.from_map/1), |
| 8730 | 10650 | name: m["name"] && decode_name(m["name"]), |
| 8731 | 10651 | resolve: m["resolve"] && Resolve.from_map(m["resolve"]), |
| 8732 | 10652 | title: decode_title(m["title"]), |
| 8733 | 10653 | transform: m["transform"] && Enum.map(m["transform"], &Transform.from_map/1), |
| 8734 | - width: m["width"], | |
| 10654 | + width: m["width"] && decode_width(m["width"]), | |
| 8735 | 10655 | encoding: m["encoding"] && Encoding.from_map(m["encoding"]), |
| 8736 | 10656 | mark: decode_mark(m["mark"]), |
| 8737 | 10657 | projection: m["projection"] && Projection.from_map(m["projection"]), |
| @@ -8866,6 +10786,14 @@ defmodule Spec do | ||
| 8866 | 10786 | def encode_description(value) when is_binary(value), do: value |
| 8867 | 10787 | def encode_description(_), do: {:error, "Unexpected type when encoding Spec.description"} |
| 8868 | 10788 | |
| 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 | + | |
| 8869 | 10797 | def decode_name(value) when is_binary(value), do: value |
| 8870 | 10798 | def decode_name(_), do: {:error, "Unexpected type when decoding Spec.name"} |
| 8871 | 10799 | |
| @@ -8882,6 +10810,14 @@ defmodule Spec do | ||
| 8882 | 10810 | def encode_title(value) when is_nil(value), do: value |
| 8883 | 10811 | def encode_title(_), do: {:error, "Unexpected type when encoding Spec.title"} |
| 8884 | 10812 | |
| 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 | + | |
| 8885 | 10821 | def decode_mark(%{"type" => _,} = value), do: MarkDef.from_map(value) |
| 8886 | 10822 | def decode_mark(value) when is_binary(value), do: Mark.decode(value) |
| 8887 | 10823 | def decode_mark(value) when is_nil(value), do: value |
| @@ -8896,13 +10832,13 @@ defmodule Spec do | ||
| 8896 | 10832 | %Spec{ |
| 8897 | 10833 | data: m["data"] && Data.from_map(m["data"]), |
| 8898 | 10834 | description: m["description"] && decode_description(m["description"]), |
| 8899 | - height: m["height"], | |
| 10835 | + height: m["height"] && decode_height(m["height"]), | |
| 8900 | 10836 | layer: m["layer"] && Enum.map(m["layer"], &LayerSpec.from_map/1), |
| 8901 | 10837 | name: m["name"] && decode_name(m["name"]), |
| 8902 | 10838 | resolve: m["resolve"] && Resolve.from_map(m["resolve"]), |
| 8903 | 10839 | title: decode_title(m["title"]), |
| 8904 | 10840 | transform: m["transform"] && Enum.map(m["transform"], &Transform.from_map/1), |
| 8905 | - width: m["width"], | |
| 10841 | + width: m["width"] && decode_width(m["width"]), | |
| 8906 | 10842 | encoding: m["encoding"] && Encoding.from_map(m["encoding"]), |
| 8907 | 10843 | mark: decode_mark(m["mark"]), |
| 8908 | 10844 | projection: m["projection"] && Projection.from_map(m["projection"]), |
| @@ -9036,6 +10972,14 @@ defmodule TopLevel do | ||
| 9036 | 10972 | def encode_description(value) when is_binary(value), do: value |
| 9037 | 10973 | def encode_description(_), do: {:error, "Unexpected type when encoding TopLevel.description"} |
| 9038 | 10974 | |
| 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 | + | |
| 9039 | 10983 | def decode_mark(%{"type" => _,} = value), do: MarkDef.from_map(value) |
| 9040 | 10984 | def decode_mark(value) when is_binary(value), do: Mark.decode(value) |
| 9041 | 10985 | def decode_mark(value) when is_nil(value), do: value |
| @@ -9074,6 +11018,14 @@ defmodule TopLevel do | ||
| 9074 | 11018 | def encode_title(value) when is_nil(value), do: value |
| 9075 | 11019 | def encode_title(_), do: {:error, "Unexpected type when encoding TopLevel.title"} |
| 9076 | 11020 | |
| 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 | + | |
| 9077 | 11029 | def from_map(m) do |
| 9078 | 11030 | %TopLevel{ |
| 9079 | 11031 | schema: m["$schema"] && decode_schema(m["$schema"]), |
| @@ -9083,7 +11035,7 @@ defmodule TopLevel do | ||
| 9083 | 11035 | data: m["data"] && Data.from_map(m["data"]), |
| 9084 | 11036 | description: m["description"] && decode_description(m["description"]), |
| 9085 | 11037 | encoding: m["encoding"] && EncodingWithFacet.from_map(m["encoding"]), |
| 9086 | - height: m["height"], | |
| 11038 | + height: m["height"] && decode_height(m["height"]), | |
| 9087 | 11039 | mark: decode_mark(m["mark"]), |
| 9088 | 11040 | name: m["name"] && decode_name(m["name"]), |
| 9089 | 11041 | padding: decode_padding(m["padding"]), |
| @@ -9092,7 +11044,7 @@ defmodule TopLevel do | ||
| 9092 | 11044 | |> Map.new(fn {key, value} -> {key, SelectionDef.from_map(value)} end), |
| 9093 | 11045 | title: decode_title(m["title"]), |
| 9094 | 11046 | transform: m["transform"] && Enum.map(m["transform"], &Transform.from_map/1), |
| 9095 | - width: m["width"], | |
| 11047 | + width: m["width"] && decode_width(m["width"]), | |
| 9096 | 11048 | layer: m["layer"] && Enum.map(m["layer"], &LayerSpec.from_map/1), |
| 9097 | 11049 | resolve: m["resolve"] && Resolve.from_map(m["resolve"]), |
| 9098 | 11050 | facet: m["facet"] && FacetMapping.from_map(m["facet"]), |
No generated files match these filters.