use super::{MonoplexBipartiteGraph, TransposedEdges, TransposedMonoplexGraph};
pub trait UndirectedBipartiteMonoplexGraph: TransposedMonoplexGraph<
TransposedEdges = <Self as UndirectedBipartiteMonoplexGraph>::UndirectedBipartiteEdges,
> + MonoplexBipartiteGraph<
MonoplexBipartiteEdges = <Self as UndirectedBipartiteMonoplexGraph>::UndirectedBipartiteEdges,
> {
type UndirectedBipartiteEdges: TransposedEdges<
SourceNodeId = Self::LeftNodeId,
DestinationNodeId = Self::RightNodeId,
>;
}
impl<G> UndirectedBipartiteMonoplexGraph for G
where
G: TransposedMonoplexGraph
+ MonoplexBipartiteGraph<MonoplexBipartiteEdges = G::TransposedEdges>,
G::TransposedEdges:
TransposedEdges<SourceNodeId = G::LeftNodeId, DestinationNodeId = G::RightNodeId>,
{
type UndirectedBipartiteEdges = G::TransposedEdges;
}