1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
use crate::graph::NodeID;
use bitvec::vec::BitVec;
#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
pub struct ResidualCapacity {
pub capacity: i32,
}
impl ResidualCapacity {
pub fn new(capacity: i32) -> ResidualCapacity {
ResidualCapacity { capacity }
}
}
pub trait MaxFlow {
fn run(&mut self);
fn max_flow(&self) -> Result<i32, String>;
fn assignment(&self, source: NodeID) -> Result<BitVec, String>;
}