@@ -2,7 +2,7 @@ use std::{collections::VecDeque, hash::Hash};
2
2
3
3
use rustc_hash:: FxHashMap ;
4
4
5
- pub struct TopologicSortIterBuilder < T > {
5
+ pub ( crate ) struct TopologicSortIterBuilder < T > {
6
6
nodes : FxHashMap < T , Entry < T > > ,
7
7
}
8
8
18
18
self . nodes . entry ( item) . or_default ( )
19
19
}
20
20
21
- pub fn add ( & mut self , item : T , predecessors : impl IntoIterator < Item = T > ) {
21
+ pub ( crate ) fn add ( & mut self , item : T , predecessors : impl IntoIterator < Item = T > ) {
22
22
let mut num_predecessors = 0 ;
23
23
24
24
for predecessor in predecessors. into_iter ( ) {
30
30
entry. num_predecessors += num_predecessors;
31
31
}
32
32
33
- pub fn build ( self ) -> TopologicalSortIter < T > {
33
+ pub ( crate ) fn build ( self ) -> TopologicalSortIter < T > {
34
34
let ready = self
35
35
. nodes
36
36
. iter ( )
43
43
}
44
44
}
45
45
46
- pub struct TopologicalSortIter < T > {
46
+ pub ( crate ) struct TopologicalSortIter < T > {
47
47
ready : VecDeque < T > ,
48
48
nodes : FxHashMap < T , Entry < T > > ,
49
49
}
@@ -52,19 +52,19 @@ impl<T> TopologicalSortIter<T>
52
52
where
53
53
T : Copy + Eq + PartialEq + Hash ,
54
54
{
55
- pub fn builder ( ) -> TopologicSortIterBuilder < T > {
55
+ pub ( crate ) fn builder ( ) -> TopologicSortIterBuilder < T > {
56
56
TopologicSortIterBuilder :: new ( )
57
57
}
58
58
59
- pub fn len ( & self ) -> usize {
59
+ pub ( crate ) fn len ( & self ) -> usize {
60
60
self . nodes . len ( )
61
61
}
62
62
63
- pub fn is_empty ( & self ) -> bool {
63
+ pub ( crate ) fn is_empty ( & self ) -> bool {
64
64
self . len ( ) == 0
65
65
}
66
66
67
- pub fn mark_done ( & mut self , item : T ) {
67
+ pub ( crate ) fn mark_done ( & mut self , item : T ) {
68
68
let entry = self . nodes . remove ( & item) . expect ( "invariant: unknown item marked as done" ) ;
69
69
70
70
for successor in entry. successors {
0 commit comments