@@ -213,7 +213,7 @@ impl Conflict {
213
213
214
214
/// A node in the graph representation of a [`Conflict`]
215
215
#[ derive( Copy , Clone , Eq , PartialEq ) ]
216
- pub ( crate ) enum ConflictNode {
216
+ pub enum ConflictNode {
217
217
/// Node corresponding to a solvable
218
218
Solvable ( SolvableOrRootId ) ,
219
219
/// Node representing a dependency without candidates
@@ -242,7 +242,7 @@ impl ConflictNode {
242
242
243
243
/// An edge in the graph representation of a [`Conflict`]
244
244
#[ derive( Copy , Clone , Hash , Eq , PartialEq , Ord , PartialOrd ) ]
245
- pub ( crate ) enum ConflictEdge {
245
+ pub enum ConflictEdge {
246
246
/// The target node is a candidate for the dependency specified by the
247
247
/// [`Requirement`]
248
248
Requires ( Requirement ) ,
@@ -268,7 +268,7 @@ impl ConflictEdge {
268
268
269
269
/// Conflict causes
270
270
#[ derive( Copy , Clone , Hash , Eq , PartialEq , Ord , PartialOrd ) ]
271
- pub ( crate ) enum ConflictCause {
271
+ pub enum ConflictCause {
272
272
/// The solvable is locked
273
273
Locked ( SolvableId ) ,
274
274
/// The target node is constrained by the specified version set
@@ -299,9 +299,12 @@ pub struct MergedConflictNode {
299
299
/// directly or indirectly involved in the conflict.
300
300
#[ derive( Clone ) ]
301
301
pub struct ConflictGraph {
302
- graph : DiGraph < ConflictNode , ConflictEdge > ,
303
- root_node : NodeIndex ,
304
- unresolved_node : Option < NodeIndex > ,
302
+ /// The conflict graph as a directed petgraph.
303
+ pub graph : DiGraph < ConflictNode , ConflictEdge > ,
304
+ /// The single source node for root constraints introduced to the solver.
305
+ pub root_node : NodeIndex ,
306
+ /// A single sink node that consumes all unresolvable constraints.
307
+ pub unresolved_node : Option < NodeIndex > ,
305
308
}
306
309
307
310
impl ConflictGraph {
0 commit comments