use super::{DirectedEdges, TransposedEdges};
use crate::traits::SparseBiMatrix2D;
pub trait TransposedDirectedEdges:
TransposedEdges<BiMatrix = <Self as TransposedDirectedEdges>::DirectedBiMatrix> + DirectedEdges
{
type DirectedBiMatrix: SparseBiMatrix2D<RowIndex = Self::SourceNodeId, ColumnIndex = Self::DestinationNodeId>;
}
impl<E> TransposedDirectedEdges for E
where
E: DirectedEdges + TransposedEdges,
E::BiMatrix: SparseBiMatrix2D<RowIndex = E::SourceNodeId, ColumnIndex = E::DestinationNodeId>,
{
type DirectedBiMatrix = E::BiMatrix;
}
pub trait TransposedDirectedGraph: super::DirectedGraph {}
impl<G> TransposedDirectedGraph for G where G: super::DirectedGraph {}