---
source: postcard-bindgen-core/tests/javascript.rs
expression: des_file
---
function deserialize_STRUCT_TYPE(d) {
return {
field_1: d.deserialize_number(U32_BYTES, false),
field_2: d.deserialize_string(),
field_3: d.deserialize_array(() => d.deserialize_number(U32_BYTES, false)),
field_4: d.deserialize_array(() => deserialize_STRUCT_TYPE(d)),
field_5: {
start: d.deserialize_number(U32_BYTES, false),
end: d.deserialize_number(U32_BYTES, false)
},
field_6: d.deserialize_string_key_map(((d) => d.deserialize_number(U32_BYTES, false))),
field_7: d.deserialize_map(((d) => [
d.deserialize_number(U32_BYTES, false),
d.deserialize_number(U32_BYTES, false)
])),
field_8: (d.deserialize_number(U32_BYTES, false) === 0) ? undefined : d.deserialize_number(U32_BYTES, false),
field_9: d.deserialize_bool(),
field_10: [
d.deserialize_number(U32_BYTES, false),
d.deserialize_string()
],
field_11: d.deserialize_array(() => d.deserialize_string(), 3),
field_12: d.deserialize_array(() => d.deserialize_number(U32_BYTES, false)),
field_13: d.deserialize_number_float(U32_BYTES)
};
}
function deserialize_UNIT_STRUCT_TYPE(d) {
return {};
}
function deserialize_TUPLE_STRUCT_TYPE(d) {
return [
d.deserialize_number(U32_BYTES, false),
d.deserialize_string()
];
}
function deserialize_ENUM_TYPE(d) {
switch (d.deserialize_number(U32_BYTES, false)) {
case 0:
return {
tag: "AVariant"
};
case 1:
return {
tag: "BVariant",
value: [
d.deserialize_number(U32_BYTES, false),
d.deserialize_string()
]
};
case 2:
return {
tag: "CVariant",
value: {
field_1: d.deserialize_number(U32_BYTES, false),
field_2: d.deserialize_string(),
struct_type: deserialize_STRUCT_TYPE(d)
}
};
default:
throw "variant not implemented"
}
}
function deserialize_sub_module_ENUM_TYPE(d) {
switch (d.deserialize_number(U32_BYTES, false)) {
case 0:
return {
tag: "AVariant"
};
case 1:
return {
tag: "BVariant",
value: [
d.deserialize_number(U32_BYTES, false),
d.deserialize_string()
]
};
case 2:
return {
tag: "CVariant",
value: {
field_1: d.deserialize_number(U32_BYTES, false),
field_2: d.deserialize_string(),
struct_type: deserialize_STRUCT_TYPE(d)
}
};
default:
throw "variant not implemented"
}
}
/**
* Deserialize a value from an array of bytes.
* @param {string} type - The type of the value to deserialize.
* @param {Uint8Array} bytes - The byte array to deserialize from.
* @return {Object} The deserialized value and remaining bytes.
*/
function deserialize(type, bytes) {
if (!(typeof type === "string")) {
throw "type must be a string";
}
const d = new Deserializer(bytes);
var return_value = undefined;
switch (type) {
case "StructType":
return_value = deserialize_STRUCT_TYPE(d);
break;
case "UnitStructType":
return_value = deserialize_UNIT_STRUCT_TYPE(d);
break;
case "TupleStructType":
return_value = deserialize_TUPLE_STRUCT_TYPE(d);
break;
case "EnumType":
return_value = deserialize_ENUM_TYPE(d);
break;
case "sub_module.EnumType":
return_value = deserialize_sub_module_ENUM_TYPE(d);
break;
default:
throw "type not implemented";
}
return { value: return_value, bytes: d.release_bytes() };
}
export {
deserialize
};