pub mod incremental_hydrostructure;
pub mod static_hydrostructure;
pub trait Hydrostructure<NodeIndex: Copy, EdgeIndex: Copy> {
fn is_node_r_plus(&self, node: NodeIndex) -> bool;
fn is_node_r_minus(&self, node: NodeIndex) -> bool;
fn is_edge_r_plus(&self, edge: EdgeIndex) -> bool;
fn is_edge_r_minus(&self, edge: EdgeIndex) -> bool;
fn is_bridge_like(&self) -> bool;
fn is_avertible(&self) -> bool {
!self.is_bridge_like()
}
fn is_node_river(&self, node: NodeIndex) -> bool {
!self.is_node_r_plus(node) && !self.is_node_r_minus(node)
}
fn is_node_cloud(&self, node: NodeIndex) -> bool {
!self.is_node_r_plus(node) && self.is_node_r_minus(node)
}
fn is_node_sea(&self, node: NodeIndex) -> bool {
self.is_node_r_plus(node) && !self.is_node_r_minus(node)
}
fn is_node_vapor(&self, node: NodeIndex) -> bool {
self.is_node_r_plus(node) && self.is_node_r_minus(node)
}
fn is_edge_river(&self, edge: EdgeIndex) -> bool {
!self.is_edge_r_plus(edge) && !self.is_edge_r_minus(edge)
}
fn is_edge_cloud(&self, edge: EdgeIndex) -> bool {
!self.is_edge_r_plus(edge) && self.is_edge_r_minus(edge)
}
fn is_edge_sea(&self, edge: EdgeIndex) -> bool {
self.is_edge_r_plus(edge) && !self.is_edge_r_minus(edge)
}
fn is_edge_vapor(&self, edge: EdgeIndex) -> bool {
self.is_edge_r_plus(edge) && self.is_edge_r_minus(edge)
}
}