I have a function f
which takes two arguments of the same type, and a function g
which takes two arguments of different types, but both types have to store the same value, so that g
can call f
with the values contained in the arguments to f
. I currently implemented something like this:
fn f<T>(a: T, b: T) {}
trait A {
type A;
fn getter(&self) -> Self::A;
}
fn g<T: A, U: A>(a: T, b: U) {
f(a.getter(), b.getter())
}
What do I have to add to the definition of g
to make it work?
A
where
clause works fine:I found a solution. It's not done by a
where
clause, but this way: