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?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…