У меня есть этот код, который использует generics.Почему мой тип FooGen не удовлетворяет привязке свойства RefGen?
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
}
}
}
Интересно, почему Руст говорит мне, что я не могу использовать FooGen
для RefGen
. Он, безусловно, реализует RefGen
.
Точное сообщение об ошибке:
expected `Facade<R>`,
found `Facade<FooGen>`
Вот манеж: http://is.gd/oBIB1o
Дубликат http://stackoverflow.com/q/32551177/155423 или http://stackoverflow.com/q/31490913/155423 или http://stackoverflow.com/q/31060851/155423 или http://stackoverflow.com/q/33812706/155423 или (вставьте здесь больше результатов поиска). – Shepmaster