Crates.io | blockly-parser |
lib.rs | blockly-parser |
version | 0.1.0 |
source | src |
created_at | 2018-10-13 05:14:55.748401 |
updated_at | 2018-10-13 05:14:55.748401 |
description | Deserialize XML generated by the Google Blockly UI into data structures. |
homepage | |
repository | https://github.com/andrewjensen/blockly-parser-rs |
max_upload_size | |
id | 89533 |
size | 16,282 |
Deserialize XML generated by the Google Blockly UI into data structures.
extern crate blockly_parser;
use blockly_parser::{
Program,
StatementBody,
Block,
FieldValue,
program_from_xml,
};
fn main() {
let xml: &str = r#"
<xml xmlns="http://www.w3.org/1999/xhtml">
<variables></variables>
<block type="main_loop" id="[.)/fqUYv92(mzb{?:~u">
<statement name="BODY">
<block type="inner_loop" id="]Lb|t?wfd#;s)[llJx8Y">
<field name="COUNT">3</field>
<statement name="BODY">
<block type="led_on" id="^3xb.m4E9i0;3$R10(=5">
<field name="TIME">300</field>
<next>
<block type="led_off" id="HX4*sB9=gbJtq$Y{ke6b">
<field name="TIME">100</field>
</block>
</next>
</block>
</statement>
<next>
<block type="led_on" id="kB~f~7W`wkGa0i4z3mHw">
<field name="TIME">100</field>
<next>
<block type="led_off" id="$fdlZB)btzA8YtB/!xz`">
<field name="TIME">100</field>
</block>
</next>
</block>
</next>
</block>
</statement>
</block>
</xml>
"#;
let program: Program = program_from_xml(xml);
let main_group: StatementBody = program.groups.get(0).unwrap();
let main_loop_block: Block = main_group.blocks.get(0).unwrap();
}
See the unit tests for more details.