I have this code that uses generics.
trait RefGen {
fn gen () -> String;
}
struct FooGen;
impl RefGen for FooGen {
fn gen () -> String {
"foo".to_owned()
}
}
struct Facade<R: RefGen> {
gen: R
}
impl<R: RefGen> Facade<R> {
fn new() -> Facade<R> {
Facade {
gen: FooGen
}
}
}
I wonder why Rust is telling me I can't use a FooGen
for a RefGen
. It certainly implements RefGen
.
The exact error message is:
expected `Facade<R>`,
found `Facade<FooGen>`
Here is a playpen: http://is.gd/oBIB1o