use smile::ffi::DSL_pattern_EdgeType;
#[derive(Eq, PartialEq)]
pub enum EdgeType {
Directed(usize, usize),
Undirected,
Absent,
}
impl EdgeType {
pub(super) fn from_dsl(value: DSL_pattern_EdgeType, from: usize, to: usize) -> Self {
match value {
DSL_pattern_EdgeType::Directed => Self::Directed(from, to),
DSL_pattern_EdgeType::Undirected => Self::Undirected,
DSL_pattern_EdgeType::None => Self::Absent,
}
}
}
impl From<EdgeType> for DSL_pattern_EdgeType {
fn from(value: EdgeType) -> Self {
match value {
EdgeType::Directed(_, _) => DSL_pattern_EdgeType::Directed,
EdgeType::Undirected => DSL_pattern_EdgeType::Undirected,
EdgeType::Absent => DSL_pattern_EdgeType::None,
}
}
}