Rust tips

  1. No inheritance in Rust @JeremyChone

    Technique used: Data first mindset, using enums

このすば (konosuba)

// Everything is an algebraic data type, everything is an *object
// Exact opposite of OOP
struct Cat;
struct Dog;

// For a Pet, you present an enum
enum Pet{
    Cat(Cat),
    Dog(Dog)
}

trait Noise{
    fn noise(&self);
}

//For common behaviors, you can provide traits
impl Noise for Cat{
    fn noise(&self){
        println!("Meow");
    }
}

  1. Data first mindset
    // Populating your struct with data
    struct Task{
     id: u64,
     title: String,
     kind: TaskKind,
     desc: Option<Sting>,
    }
    
    // Enum works as well
    enum WebEvent{
     PageLoad,
     KeyPress(char),
     Paste(String),
     Click{x: i64, y:i64},
    }