use std::marker::PhantomData; | |
type Component = fn(&()); | |
struct Wrapper { | |
router: Router<(Component, Box<Self>)>, | |
} | |
struct Match<C>(PhantomData<C>); | |
struct Router<T>(PhantomData<T>); | |
impl<T> Router<T> { | |
pub fn at(&self) -> Result<Match<&T>, ()> { | |
todo!() | |
} | |
} | |
impl Wrapper { | |
fn at(&self, path: &str) -> Result<(Component, Box<Self>), ()> { | |
let (cmp, router) = self.router.at()?; | |
//~^ ERROR mismatched types | |
todo!() | |
} | |
} | |
fn main() {} |