@@ -28,12 +28,19 @@ fn merge_ids(a: u64, b: u64) -> u64 {
2828 hasher. finish ( )
2929}
3030
31+ #[ derive( Clone , Debug , PartialEq , Default ) ]
32+ #[ cfg_attr( feature = "serde" , derive( serde:: Serialize , serde:: Deserialize ) ) ]
33+ pub struct DocumentNodeMetadata {
34+ pub position : ( i32 , i32 ) ,
35+ }
36+
3137#[ derive( Clone , Debug , PartialEq ) ]
3238#[ cfg_attr( feature = "serde" , derive( serde:: Serialize , serde:: Deserialize ) ) ]
3339pub struct DocumentNode {
3440 pub name : String ,
3541 pub inputs : Vec < NodeInput > ,
3642 pub implementation : DocumentNodeImplementation ,
43+ pub metadata : DocumentNodeMetadata ,
3744}
3845
3946impl DocumentNode {
@@ -183,6 +190,7 @@ impl NodeNetwork {
183190 name : name. clone ( ) ,
184191 inputs : vec ! [ NodeInput :: Value { tagged_value, exposed } ] ,
185192 implementation : DocumentNodeImplementation :: Unresolved ( NodeIdentifier :: new ( "graphene_core::value::ValueNode" , & [ Type :: Generic ] ) ) ,
193+ metadata : DocumentNodeMetadata :: default ( ) ,
186194 } ;
187195 assert ! ( !self . nodes. contains_key( & new_id) ) ;
188196 self . nodes . insert ( new_id, value_node) ;
@@ -245,6 +253,7 @@ mod test {
245253 name : "Cons" . into ( ) ,
246254 inputs : vec ! [ NodeInput :: Network , NodeInput :: Network ] ,
247255 implementation : DocumentNodeImplementation :: Unresolved ( NodeIdentifier :: new ( "graphene_core::structural::ConsNode" , & [ Type :: Generic , Type :: Generic ] ) ) ,
256+ metadata : DocumentNodeMetadata :: default ( ) ,
248257 } ,
249258 ) ,
250259 (
@@ -253,6 +262,7 @@ mod test {
253262 name : "Add" . into ( ) ,
254263 inputs : vec ! [ NodeInput :: Node ( 0 ) ] ,
255264 implementation : DocumentNodeImplementation :: Unresolved ( NodeIdentifier :: new ( "graphene_core::ops::AddNode" , & [ Type :: Generic , Type :: Generic ] ) ) ,
265+ metadata : DocumentNodeMetadata :: default ( ) ,
256266 } ,
257267 ) ,
258268 ]
@@ -275,6 +285,7 @@ mod test {
275285 name : "Cons" . into ( ) ,
276286 inputs : vec ! [ NodeInput :: Network , NodeInput :: Network ] ,
277287 implementation : DocumentNodeImplementation :: Unresolved ( NodeIdentifier :: new ( "graphene_core::structural::ConsNode" , & [ Type :: Generic , Type :: Generic ] ) ) ,
288+ metadata : DocumentNodeMetadata :: default ( ) ,
278289 } ,
279290 ) ,
280291 (
@@ -283,6 +294,7 @@ mod test {
283294 name : "Add" . into ( ) ,
284295 inputs : vec ! [ NodeInput :: Node ( 1 ) ] ,
285296 implementation : DocumentNodeImplementation :: Unresolved ( NodeIdentifier :: new ( "graphene_core::ops::AddNode" , & [ Type :: Generic , Type :: Generic ] ) ) ,
297+ metadata : DocumentNodeMetadata :: default ( ) ,
286298 } ,
287299 ) ,
288300 ]
@@ -309,6 +321,7 @@ mod test {
309321 } ,
310322 ] ,
311323 implementation : DocumentNodeImplementation :: Network ( add_network ( ) ) ,
324+ metadata : DocumentNodeMetadata :: default ( ) ,
312325 } ,
313326 ) ]
314327 . into_iter ( )
@@ -328,6 +341,7 @@ mod test {
328341 name : "Cons" . into ( ) ,
329342 inputs : vec ! [ NodeInput :: Network , NodeInput :: Node ( 0 ) ] ,
330343 implementation : DocumentNodeImplementation :: Unresolved ( NodeIdentifier :: new ( "graphene_core::structural::ConsNode" , & [ Type :: Generic , Type :: Generic ] ) ) ,
344+ metadata : DocumentNodeMetadata :: default ( ) ,
331345 } ;
332346
333347 let proto_node = document_node. resolve_proto_node ( ) ;
@@ -393,6 +407,7 @@ mod test {
393407 name : "Inc" . into ( ) ,
394408 inputs : vec ! [ NodeInput :: Node ( 11 ) ] ,
395409 implementation : DocumentNodeImplementation :: Unresolved ( NodeIdentifier :: new ( "graphene_core::ops::IdNode" , & [ Type :: Generic ] ) ) ,
410+ metadata : DocumentNodeMetadata :: default ( ) ,
396411 } ,
397412 ) ,
398413 (
@@ -401,6 +416,7 @@ mod test {
401416 name : "Cons" . into ( ) ,
402417 inputs : vec ! [ NodeInput :: Network , NodeInput :: Node ( 14 ) ] ,
403418 implementation : DocumentNodeImplementation :: Unresolved ( NodeIdentifier :: new ( "graphene_core::structural::ConsNode" , & [ Type :: Generic , Type :: Generic ] ) ) ,
419+ metadata : DocumentNodeMetadata :: default ( ) ,
404420 } ,
405421 ) ,
406422 (
@@ -412,6 +428,7 @@ mod test {
412428 exposed: false ,
413429 } ] ,
414430 implementation : DocumentNodeImplementation :: Unresolved ( NodeIdentifier :: new ( "graphene_core::value::ValueNode" , & [ Type :: Generic ] ) ) ,
431+ metadata : DocumentNodeMetadata :: default ( ) ,
415432 } ,
416433 ) ,
417434 (
@@ -420,6 +437,7 @@ mod test {
420437 name : "Add" . into ( ) ,
421438 inputs : vec ! [ NodeInput :: Node ( 10 ) ] ,
422439 implementation : DocumentNodeImplementation :: Unresolved ( NodeIdentifier :: new ( "graphene_core::ops::AddNode" , & [ Type :: Generic , Type :: Generic ] ) ) ,
440+ metadata : DocumentNodeMetadata :: default ( ) ,
423441 } ,
424442 ) ,
425443 ]
0 commit comments