упр.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) -> Self
  • enum 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: _ })));
}