use crate::DType;
use numr::error::Result;
use numr::runtime::Runtime;
use super::types::{FlowResult, GraphData, MinCostFlowOptions};
pub trait FlowAlgorithms<R: Runtime<DType = DType>> {
fn max_flow(&self, graph: &GraphData<R>, source: usize, sink: usize) -> Result<FlowResult<R>>;
fn min_cost_flow(
&self,
graph: &GraphData<R>,
source: usize,
sink: usize,
options: &MinCostFlowOptions,
) -> Result<FlowResult<R>>;
}