[ { "type":"switch", "subtypes":[ { "description": "container including a switch going to u8, u16 or u32", "type": ["container", [ { "name":"action", "type":"u8" }, { "name":"result", "type":["switch", { "compareTo":"action", "fields":{ "0":"u8", "1":"u16", "2":"u32" } } ] } ] ], "values":[ { "description":"u8", "value":{ "action":0, "result":3 }, "buffer":["0x00","0x03"] }, { "description":"u32", "value":{ "action":2, "result":4294966272 }, "buffer":["0x02","0xff","0xff","0xfc","0x00"] } ] }, { "description": "container with a variable", "vars": [["colorTransparent", 3]], "type": [ "container", [ { "name": "color", "type": "i32" }, { "name": "opacity", "type": [ "switch", { "compareTo": "color", "fields": { "/colorTransparent": "void" }, "default": "u8" } ] } ] ], "values": [ { "description": "active", "value": { "color": 3, "opacity": "undefined" }, "buffer": ["0x00","0x00","0x00","0x03"] }, { "description": "inactive", "value": { "color": 2, "opacity": 4 }, "buffer": ["0x00","0x00","0x00","0x02", "0x04"] } ] } ] }, { "type":"option", "subtypes":[ { "description":"optional u16", "type":["option","u16"], "values":[ { "value":61303, "buffer":["0x01", "0xef","0x77"] }, { "value": null, "buffer":["0x00"] } ] } ] } ]