use super::{MonoplexBipartiteGraph, WeightedEdges, WeightedMonoplexGraph};
pub trait BipartiteWeightedMonoplexGraph:
WeightedMonoplexGraph<
WeightedEdges = <Self as BipartiteWeightedMonoplexGraph>::BipartiteWeightedEdges,
> + MonoplexBipartiteGraph<
MonoplexBipartiteEdges = <Self as BipartiteWeightedMonoplexGraph>::BipartiteWeightedEdges,
>
{
type BipartiteWeightedEdges: WeightedEdges<
SourceNodeId = Self::LeftNodeId,
DestinationNodeId = Self::RightNodeId,
Weight = Self::Weight,
WeightedEdge = Self::Edge,
>;
}
impl<G> BipartiteWeightedMonoplexGraph for G
where
G: WeightedMonoplexGraph + MonoplexBipartiteGraph<MonoplexBipartiteEdges = G::WeightedEdges>,
<G as WeightedMonoplexGraph>::WeightedEdges: WeightedEdges<
SourceNodeId = G::LeftNodeId,
DestinationNodeId = G::RightNodeId,
Weight = G::Weight,
WeightedEdge = G::Edge,
>,
{
type BipartiteWeightedEdges = G::WeightedEdges;
}