@@ -132,16 +132,24 @@ impl<'a> Graph<'a> {
132
132
133
133
/// Returns a list of nodes the given node index points to for the given kind.
134
134
pub fn edges_of_kind ( & self , from : usize , kind : & EdgeKind ) -> Vec < Edge > {
135
- let edges = self . edges [ from] . of_kind ( kind) ;
135
+ let edges = self . edges ( from) . of_kind ( kind) ;
136
136
// Created a sorted list for consistent output.
137
137
let mut edges = edges. to_owned ( ) ;
138
138
edges. sort_unstable_by ( |a, b| self . node ( a. node ( ) ) . cmp ( & self . node ( b. node ( ) ) ) ) ;
139
139
edges
140
140
}
141
141
142
+ fn edges ( & self , from : usize ) -> & Edges {
143
+ & self . edges [ from]
144
+ }
145
+
146
+ fn edges_mut ( & mut self , from : usize ) -> & mut Edges {
147
+ & mut self . edges [ from]
148
+ }
149
+
142
150
/// Returns `true` if the given node has any outgoing edges.
143
151
pub fn has_outgoing_edges ( & self , index : usize ) -> bool {
144
- !self . edges [ index] . is_empty ( )
152
+ !self . edges ( index) . is_empty ( )
145
153
}
146
154
147
155
/// Gets a node by index.
@@ -207,13 +215,13 @@ impl<'a> Graph<'a> {
207
215
let new_from = new_graph. add_node ( node) ;
208
216
remap[ index] = Some ( new_from) ;
209
217
// Visit dependencies.
210
- for edge in graph. edges [ index] . all ( ) {
218
+ for edge in graph. edges ( index) . all ( ) {
211
219
let new_to_index = visit ( graph, new_graph, remap, edge. node ( ) ) ;
212
220
let new_edge = Edge {
213
221
kind : edge. kind ( ) ,
214
222
node : new_to_index,
215
223
} ;
216
- new_graph. edges [ new_from] . add_edge ( new_edge) ;
224
+ new_graph. edges_mut ( new_from) . add_edge ( new_edge) ;
217
225
}
218
226
new_from
219
227
}
@@ -473,10 +481,10 @@ fn add_pkg(
473
481
}
474
482
if !dep. uses_default_features ( ) && dep. features ( ) . is_empty ( ) {
475
483
// No features, use a direct connection.
476
- graph. edges [ from_index] . add_edge ( new_edge) ;
484
+ graph. edges_mut ( from_index) . add_edge ( new_edge) ;
477
485
}
478
486
} else {
479
- graph. edges [ from_index] . add_edge ( new_edge) ;
487
+ graph. edges_mut ( from_index) . add_edge ( new_edge) ;
480
488
}
481
489
}
482
490
}
@@ -522,13 +530,13 @@ fn add_feature(
522
530
kind : to. kind ( ) ,
523
531
node : node_index,
524
532
} ;
525
- graph. edges [ from] . add_edge ( from_edge) ;
533
+ graph. edges_mut ( from) . add_edge ( from_edge) ;
526
534
}
527
535
let to_edge = Edge {
528
536
kind : EdgeKind :: Feature ,
529
537
node : to. node ( ) ,
530
538
} ;
531
- graph. edges [ node_index] . add_edge ( to_edge) ;
539
+ graph. edges_mut ( node_index) . add_edge ( to_edge) ;
532
540
( missing, node_index)
533
541
}
534
542
0 commit comments