use super::GraphNodeId;
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub enum GraphEdgeKind {
Imports,
ReExports,
DependsOn,
TestOf,
GeneratedFrom,
Configures,
}
impl GraphEdgeKind {
pub fn is_dependency(self) -> bool {
matches!(self, Self::Imports | Self::ReExports | Self::DependsOn)
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub enum GraphEdgeProvenance {
Import,
TestHeuristic,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub enum GraphEdgeConfidence {
High,
Medium,
Low,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct GraphEdge {
pub from: GraphNodeId,
pub to: GraphNodeId,
pub kind: GraphEdgeKind,
pub provenance: GraphEdgeProvenance,
pub confidence: GraphEdgeConfidence,
}