@@ -168,17 +168,13 @@ fn initialize_from_table_collection() {
168168 // }
169169
170170 // ANCHOR: iterate_edge_differences
171- if let Ok ( mut edge_diff_iterator) = treeseq. edge_differences_iter ( ) {
172- while let Some ( diffs) = edge_diff_iterator. next ( ) {
173- for edge_removal in diffs. edge_removals ( ) {
174- println ! ( "{}" , edge_removal) ;
175- }
176- for edge_insertion in diffs. edge_insertions ( ) {
177- println ! ( "{}" , edge_insertion) ;
178- }
171+ for diffs in treeseq. edge_differences_iter ( ) {
172+ for edge_removal in diffs. removals ( ) {
173+ println ! ( "{}" , edge_removal) ;
174+ }
175+ for edge_insertion in diffs. insertions ( ) {
176+ println ! ( "{}" , edge_insertion) ;
179177 }
180- } else {
181- panic ! ( "creating edge diffs iterator failed" ) ;
182178 }
183179 // ANCHOR_END: iterate_edge_differences
184180
@@ -187,25 +183,18 @@ fn initialize_from_table_collection() {
187183 // num_nodes + 1 to reflect a "virtual root" present in
188184 // the tree arrays
189185 let mut parents = vec ! [ NodeId :: NULL ; num_nodes + 1 ] ;
190- match treeseq. edge_differences_iter ( ) {
191- Ok ( mut ediff_iter) => match treeseq. tree_iterator ( 0 ) {
192- Ok ( mut tree_iter) => {
193- while let Some ( diffs) = ediff_iter. next ( ) {
194- let tree = tree_iter. next ( ) . unwrap ( ) ;
195- for edge_out in diffs. edge_removals ( ) {
196- let c = edge_out. child ( ) ;
197- parents[ c. as_usize ( ) ] = NodeId :: NULL ;
198- }
199- for edge_in in diffs. edge_insertions ( ) {
200- let c = edge_in. child ( ) ;
201- parents[ c. as_usize ( ) ] = edge_in. parent ( ) ;
202- }
203- assert_eq ! ( tree. parent_array( ) , & parents) ;
204- }
205- }
206- Err ( e) => panic ! ( "error creating tree iter: {:?}" , e) ,
207- } ,
208- Err ( e) => panic ! ( "error creating edge diff iter: {:?}" , e) ,
186+ let mut tree_iter = treeseq. tree_iterator ( 0 ) . unwrap ( ) ;
187+ for diffs in treeseq. edge_differences_iter ( ) {
188+ let tree = tree_iter. next ( ) . unwrap ( ) ;
189+ for edge_out in diffs. removals ( ) {
190+ let c = edge_out. child ( ) ;
191+ parents[ c. as_usize ( ) ] = NodeId :: NULL ;
192+ }
193+ for edge_in in diffs. insertions ( ) {
194+ let c = edge_in. child ( ) ;
195+ parents[ c. as_usize ( ) ] = edge_in. parent ( ) ;
196+ }
197+ assert_eq ! ( tree. parent_array( ) , & parents) ;
209198 }
210199 // ANCHOR_END: iterate_edge_differences_update_parents
211200}
0 commit comments