pub trait GenericCongAvoidAlg {
type Flow: GenericCongAvoidFlow;
fn name() -> &'static str;
fn with_args(matches: ArgMatches<'_>) -> Self;
fn new_flow(
&self,
logger: Option<Logger>,
init_cwnd: u32,
mss: u32
) -> Self::Flow;
fn args<'a, 'b>() -> Vec<Arg<'a, 'b>> { ... }
}