Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- enum JobTitle {
- CEO,
- Owner,
- Employee,
- }
- struct Person {
- first_name: String,
- last_name: String,
- age: i32,
- job_title: JobTitle,
- salary: f32, //Option<f32>
- }
- impl Person {
- fn profile(&self) {
- println!(
- "{} {} is an {} at ",
- self.last_name, self.first_name, self.job_title
- );
- }
- fn anual_revenue(&self) -> f32 {
- let mut salary: f32 = self.salary;
- match salary {
- 666.6 => salary += (salary + 100.0) % 100.0,
- 333.6 => salary += (salary + 0.50) % 100.0,
- _ => println!("I am the owner"),
- }
- salary
- }
- }
- struct Company {
- id: i32,
- name: String,
- owners: Vec<Person>,
- }
- fn main() {
- //team
- let p1: Person = Person {
- first_name: String::from("mehdi"),
- last_name: String::from("bCheikh"),
- age: 26,
- job_title: JobTitle::CEO,
- salary: 666.6,
- };
- let p2: Person = Person {
- first_name: String::from("Zied"),
- last_name: String::from("sama"),
- age: 26,
- job_title: JobTitle::Owner,
- salary: 0.0,
- };
- let p3: Person = Person {
- first_name: String::from("Anis"),
- last_name: String::from("senya"),
- age: 26,
- job_title: JobTitle::Owner,
- salary: 0.0,
- };
- let p4: Person = Person {
- first_name: String::from("Asma"),
- last_name: String::from("asma"),
- age: 26,
- job_title: JobTitle::Employee,
- salary: 333.6,
- };
- //owners
- let mut v: Vec<Person> = vec![];
- v.push(p2);
- v.push(p3);
- //company
- let company: Company = Company {
- id: 32,
- name: String::from("Astrolab"),
- owners: v,
- };
- p1.profile();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement