Допустим у меня есть много структур, каждая из которых содержит одинаковое поле
area
и реализует интерфейс
Shape
. К примеру:
pub trait Shape {
fn get_area(&self) -> f64;
}
pub struct Rectangle {
area: f64
}
impl Shape for Rectangle {
fn get_area(&self) -> f64 {
return self.area;
}
}
pub struct Circle {
area: f64
}
impl Shape for Circle {
fn get_area(&self) -> f64 {
return self.area;
}
}
Правильно ли я понимаю, что для каждого нового типа надо переписывать метод
get_area
? Как избежать дубликации кода реализуя Trait'ы в Rust?