У меня есть две черты в иерархии: Animal
и Bird
. Как я могу создать Chicken
, который реализует Bird
?
trait Animal {
fn noise(&self) -> String;
fn print_noise(&self) {
print!("{}", self.noise());
}
}
trait Bird: Animal {
fn noise(&self) -> String {
"chirp"
}
}
struct Chicken {}
impl Bird for Chicken {}
площадка
Когда я пытаюсь скомпилировать, я получаю:
error[E0277]: the trait bound `Chicken: Animal` is not satisfied
--> src/lib.rs:16:6
|
16 | impl Bird for Chicken {}
| ^^^^ the trait `Animal` is not implemented for `Chicken`
Я не хочу реализовывать Animal
до Bird
, потому что я хочу, чтобы Chicken
наследовал функцию noise
от Bird
.