1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
pub trait Dialer {
    type C;

    fn load_from_config(config: Self::C) -> Self;
}

pub fn load_dialer<D>(config: D::C) -> D
    where D: Dialer
{
    D::load_from_config(config)
}