How can I enforce equality of two associated type parameters of traits?

£可爱£侵袭症+ 提交于 2019-12-01 21:42:13
porky11

I found a solution. It's not done by a where clause, but this way:

fn g<T: A, U: A<A = T::A>>(a: T, b: U) { // where T::A is equal to B::A
    f(a.getter(), b.getter())
}

A where clause works fine:

fn g<T, U>(a: T, b: U)
where
    T: A,
    U: A<A = T::A>, // where T::A is equal to B::A
{
    f(a.getter(), b.getter())
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!