упр.03 задача 2
- Краен срок:
- 29.10.2025 23:59
- Точки:
- 1
Създай система за моделиране на различни видове превозни средства и поведението им при движение. а) Дефинирай:
enum VehicleKind {
Car,
Truck,
Motorcycle,
Bicycle,
}
struct Vehicle {
kind: VehicleKind,
fuel: f64,
distance: f64,
}
б) Имплементирай методи:
fn new(kind: VehicleKind, fuel: f64) -> Selfenum DriveError { NotEnoughFuel { needed: f64, have: f64 } }-
fn drive(&mut self, km: f64) -> Result<(), DriveError>— изчислява разход според вида:- Car → 0.07 л/км
- Truck → 0.15 л/км
- Motorcycle → 0.05 л/км
- Bicycle → 0.0 л/км
Задължително прочетете (или си припомнете): Указания за предаване на домашни
Погрижете се решението ви да се компилира с базовия тест:
// Include the solution source in the same file, so we
// don't have to worry about item visibility.
// Please don't use `include!` in real code, this is a hack
// around the checking system.
include!{ "../src/lib.rs" }
#[test]
fn test_basic() {
let mut vehicle = Vehicle::new(VehicleKind::Car, 10.0);
assert!(matches!(vehicle.drive(100.0), Ok(_)));
assert!(matches!(vehicle.drive(100.0), Err(DriveError::NotEnoughFuel{needed: _, have: _ })));
}
