File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ use std:: collections:: HashMap ;
2+
3+ use crate :: Input ;
14use serde:: Deserialize ;
25
36#[ derive( Debug , Deserialize ) ]
@@ -6,7 +9,7 @@ pub struct Block {
69 pub opcode : String ,
710 pub next : Option < String > ,
811 pub parent : Option < String > ,
9- // pub inputs: ... ,
12+ pub inputs : HashMap < String , Input > ,
1013 // pub fields: ...,
1114 pub shadow : bool ,
1215 #[ serde( rename = "topLevel" ) ]
Original file line number Diff line number Diff line change 1+ use serde:: Deserialize ;
2+ use serde_json;
3+ use serde_tuple:: * ;
4+
5+ #[ derive( Debug , Deserialize ) ]
6+ #[ serde( untagged) ]
7+ pub enum InputValue {
8+ Id ( String ) ,
9+ Prim ( serde_json:: Value ) ,
10+ }
11+ #[ derive( Debug , Deserialize_tuple ) ]
12+ pub struct ObscuredInput {
13+ pub shadow : u8 ,
14+ pub value : InputValue ,
15+ pub obscurer : InputValue ,
16+ }
17+ #[ derive( Debug , Deserialize_tuple ) ]
18+ pub struct SimpleInput {
19+ pub shadow : u8 ,
20+ pub value : InputValue ,
21+ }
22+ #[ derive( Debug , Deserialize ) ]
23+ #[ serde( untagged) ]
24+ pub enum Input {
25+ Simple ( SimpleInput ) ,
26+ Obscured ( ObscuredInput ) ,
27+ }
Original file line number Diff line number Diff line change @@ -4,6 +4,7 @@ pub mod comment;
44pub mod costume;
55pub mod error;
66pub mod extension;
7+ pub mod input;
78pub mod list;
89pub mod meta;
910pub mod monitor;
@@ -17,6 +18,7 @@ pub use broadcast::Broadcast;
1718pub use comment:: Comment ;
1819pub use costume:: Costume ;
1920pub use extension:: Extension ;
21+ pub use input:: Input ;
2022pub use list:: List ;
2123pub use meta:: Meta ;
2224pub use monitor:: Monitor ;
Original file line number Diff line number Diff line change @@ -54,7 +54,10 @@ impl Project {
5454 } ;
5555 project. title = title;
5656 let sprite = project. get_sprite_by_name ( "Part 1" ) . unwrap ( ) ;
57- println ! ( "{:#?}" , sprite. comments) ;
57+ println ! (
58+ "{:#?}" ,
59+ sprite. blocks. values( ) . skip( 15 ) . take( 15 ) . collect:: <Vec <_>>( )
60+ ) ;
5861 Ok ( project)
5962 }
6063 pub fn get_sprite_by_name ( & mut self , name : & str ) -> Option < & mut Sprite > {
You can’t perform that action at this time.
0 commit comments