@@ -59,26 +59,35 @@ impl InternalPropertyAdditionOps for db4_graph::TemporalGraph<Extension> {
5959 t : TimeIndexEntry ,
6060 props : & [ ( usize , Prop ) ] ,
6161 ) -> Result < ( ) , Self :: Error > {
62- // FIXME: check atomicity
63- for ( id, prop) in props {
64- self . graph_meta ( ) . add_prop ( t, * id, prop. clone ( ) ) ?;
65- }
62+ let mut writer = self . storage ( ) . graph ( ) . writer ( ) ;
63+
64+ // TODO: props should be passed as a vec instead of cloning
65+ let props: Vec < _ > = props. iter ( ) . map ( |( id, prop) | ( * id, prop. clone ( ) ) ) . collect ( ) ;
66+
67+ writer. add_properties ( t, props) ;
68+
6669 Ok ( ( ) )
6770 }
6871
6972 fn internal_add_metadata ( & self , props : & [ ( usize , Prop ) ] ) -> Result < ( ) , Self :: Error > {
70- // FIXME: check atomicity
71- for ( id, prop) in props {
72- self . graph_meta ( ) . add_metadata ( * id, prop. clone ( ) ) ?;
73- }
73+ let mut writer = self . storage ( ) . graph ( ) . writer ( ) ;
74+
75+ // TODO: props should be passed as a vec instead of cloning
76+ let props: Vec < _ > = props. iter ( ) . map ( |( id, prop) | ( * id, prop. clone ( ) ) ) . collect ( ) ;
77+
78+ writer. add_metadata ( props) ;
79+
7480 Ok ( ( ) )
7581 }
7682
7783 fn internal_update_metadata ( & self , props : & [ ( usize , Prop ) ] ) -> Result < ( ) , Self :: Error > {
78- // FIXME: check atomicity
79- for ( id, prop) in props {
80- self . graph_meta ( ) . update_metadata ( * id, prop. clone ( ) ) ;
81- }
84+ let mut writer = self . storage ( ) . graph ( ) . writer ( ) ;
85+
86+ // TODO: props should be passed as a vec instead of cloning
87+ let props: Vec < _ > = props. iter ( ) . map ( |( id, prop) | ( * id, prop. clone ( ) ) ) . collect ( ) ;
88+
89+ writer. update_metadata ( props) ;
90+
8291 Ok ( ( ) )
8392 }
8493
0 commit comments