Задачи на ООП в Rust. Часть 4
Сделайте getter fn age(&self) -> u32 и setter fn set_age(&mut self, age: u32).
В setter проверяйте, что возраст не отрицательный.
Дан struct:
struct Person { name: String, age: u32 }
Сделайте getter/setter только для age, name — read-only после создания.
Сравните Rust getters и Java-style — нужны ли они всегда?
Сделайте setter зарплаты с проверкой минимума.
Сделайте computed getter fn annual_salary(&self) -> u32 как salary * 12.
Дан struct:
struct Temperature { celsius: f64 }
Добавьте getter fahrenheit(&self) без хранения отдельного поля.
Используйте #[derive(Clone)] для struct с getters.
Сделайте builder через методы with_name, with_age, возвращающие self.
Создайте struct Product с полями name и price. Сеттер цены должен отклонять отрицательные значения.