Advertisement
Guest User

Untitled

a guest
Mar 10th, 2019
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 0.95 KB | None | 0 0
  1.  
  2.  
  3. struct Car {
  4.     model: String
  5. }
  6.  
  7. struct Customer<'a> {
  8.    car: Option<&'a Car>
  9. }
  10.  
  11. impl <'a> Customer<'a> {
  12.     fn new() -> Customer<'a> {
  13.        Customer {
  14.            car: None
  15.        }
  16.    }
  17.  
  18.    fn buy_car(&mut self, c: &'a Car) {
  19.         self.car = Some(c);
  20.     }
  21.  
  22.     fn sell_car(&mut self) {
  23.         self.car = None;
  24.     }
  25.     fn trade_with(&mut self, other: &mut Customer<'a>) {
  26.        let tmp = other.car;
  27.  
  28.        other.car = self.car;
  29.        self.car = tmp;
  30.    }
  31. }
  32. fn main() {
  33.    let mut fabia = &Car{ model: "Skoda Fabia".to_string() };
  34.    let logan = Car{ model: "Renault Logan".to_string() };
  35.  
  36.    let mut bob = Customer::new();
  37.    let mut alice = Customer::new();
  38.    let mut artem = Customer::new();
  39.  
  40.    bob.buy_car(&mut fabia);
  41.    alice.buy_car(&logan);
  42.    artem.buy_car(&fabia);
  43.  
  44.  
  45.  //  bob.trade_with(&mut alice);
  46.  
  47.    //println!("{}", tempcar.model);
  48. //   println!("{}", alice.car);
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement