From 5c5e7ef469ea04733c753ba180265d48e6fdf94b Mon Sep 17 00:00:00 2001 From: seun Date: Mon, 17 Feb 2025 18:28:01 +0100 Subject: [PATCH 1/2] fecthing user with index --- src/main.rs | 2 + src/user_registry.rs | 138 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 140 insertions(+) create mode 100644 src/user_registry.rs diff --git a/src/main.rs b/src/main.rs index d59e618..ec0af88 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,9 +3,11 @@ mod float; mod signed; mod string; mod unsigned; +mod user_registry; fn main() { unsigned::intro_to_u(); signed::intro_to_i(); float::intro_to_float(); string::strings(); + user_registry::user_reg(); } diff --git a/src/user_registry.rs b/src/user_registry.rs new file mode 100644 index 0000000..6d5df4d --- /dev/null +++ b/src/user_registry.rs @@ -0,0 +1,138 @@ +#[derive(Clone, Debug)] +pub struct User { + id: i8, + name: String, + age: i16, + status: MarriedStatus, + gender: Sex, +} +#[derive(Clone, Copy, Debug)] +pub enum MarriedStatus { + Single, + Married, + Divorced, +} + +#[derive(Clone, Copy, Debug)] +pub enum Sex { + Male, + Female, + +} + + impl User { + pub fn users(_id: i8, _name: String , _age:i16, _status: MarriedStatus, _gender: Sex) -> User { + let user = User { + id: _id, + name: _name, + age: _age, + status: _status, + gender: _gender, + }; + user + } + + pub fn update_marriage_status(&mut self, status: MarriedStatus) -> User { + match status { + MarriedStatus::Married => { + println!("The user is : {:?}", status); + } + MarriedStatus::Single => { + println!("The user is: {:?}", status); + } + MarriedStatus::Divorced => { + println!("The user is: {:?}", status); + } + + } + let user = User { + id: self.id, + name: self.name.to_string(), + age: self.age, + status: status, + gender: self.gender, + }; + user + + } + + pub fn update_the_gender(&self, gender: Sex) -> User { + match gender { + Sex::Male => { + println!("The user is : {:?}", gender); + } + Sex::Female => { + println!("The user is : {:?}", gender); + } + + + } + let user = User { + id: self.id, + name: self.name.clone(), + age: self.age, + status: self.status.clone(), + gender: self.gender, + + }; + user + + } + + pub fn update_user_name(&mut self, _name: String) { + self.name = _name.to_string(); + } + + + } + + + + + + +pub fn user_reg() { + + // let all_users = [ + + // User {id: 0, name: "David".to_string(), age: 20, status: MarriedStatus::Single, gender: Sex::Male}, + // User {id: 1, name: "Oshioke".to_string(), age: 40, status: MarriedStatus::Divorced, gender: Sex::Female}, + // User {id: 2, name: "Ibukun".to_string(), age: 24, status: MarriedStatus::Married, gender: Sex::Female}, + // User {id: 3, name: "Andrew".to_string(), age: 26, status: MarriedStatus::Divorced, gender: Sex::Male}, + // User {id: 4, name: "Emmanuel".to_string(), age: 34, status: MarriedStatus::Single, gender: Sex::Male}, + // ]; + + // match all_users { + // [User { id: 0, name, .. }, ..] => println!("First user is {}", name), + // [_, User { id: 1, name, .. }, ..] => println!("Second user is {}", name), + // _ => println!("User is not Registered"), + // } + + let mut all_users = vec![ + User {id: 0, name: "David".to_string(), age: 20, status: MarriedStatus::Single, gender: Sex::Male}, + User {id: 1, name: "Oshioke".to_string(), age: 40, status: MarriedStatus::Divorced, gender: Sex::Female}, + User {id: 2, name: "Ibukun".to_string(), age: 24, status: MarriedStatus::Married, gender: Sex::Female}, + User {id: 3, name: "Andrew".to_string(), age: 26, status: MarriedStatus::Divorced, gender: Sex::Male}, + User {id: 4, name: "Emmanuel".to_string(), age: 34, status: MarriedStatus::Single, gender: Sex::Male}, + ]; + for user in &mut all_users { + println!("all users in here are: {:?}", user); + } + + + + + let mut new_user = User::users( 0,"David".to_string(), 28, MarriedStatus::Married, Sex::Male); + println!("The user here: {:?} ", new_user); + + + let update_status = User::update_marriage_status( &mut new_user, MarriedStatus::Single); + println!("The updated status: {:?}", update_status); + + let update_gender: User = User::update_the_gender(&mut new_user, Sex::Female); + println!("The update gender: {:?}", update_gender); + + let update_name = User::update_user_name(&mut new_user, "Caleb".to_string()); + println!("The updated username is: {:?}", update_name); + + } From b225893eedea04a6939f448daa6cb9556d3a9700 Mon Sep 17 00:00:00 2001 From: seun Date: Mon, 17 Feb 2025 18:32:14 +0100 Subject: [PATCH 2/2] deleted unneccessary files --- src/user_registry.rs | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/src/user_registry.rs b/src/user_registry.rs index 6d5df4d..c3de68c 100644 --- a/src/user_registry.rs +++ b/src/user_registry.rs @@ -93,21 +93,7 @@ pub enum Sex { pub fn user_reg() { - // let all_users = [ - - // User {id: 0, name: "David".to_string(), age: 20, status: MarriedStatus::Single, gender: Sex::Male}, - // User {id: 1, name: "Oshioke".to_string(), age: 40, status: MarriedStatus::Divorced, gender: Sex::Female}, - // User {id: 2, name: "Ibukun".to_string(), age: 24, status: MarriedStatus::Married, gender: Sex::Female}, - // User {id: 3, name: "Andrew".to_string(), age: 26, status: MarriedStatus::Divorced, gender: Sex::Male}, - // User {id: 4, name: "Emmanuel".to_string(), age: 34, status: MarriedStatus::Single, gender: Sex::Male}, - // ]; - - // match all_users { - // [User { id: 0, name, .. }, ..] => println!("First user is {}", name), - // [_, User { id: 1, name, .. }, ..] => println!("Second user is {}", name), - // _ => println!("User is not Registered"), - // } - + let mut all_users = vec![ User {id: 0, name: "David".to_string(), age: 20, status: MarriedStatus::Single, gender: Sex::Male}, User {id: 1, name: "Oshioke".to_string(), age: 40, status: MarriedStatus::Divorced, gender: Sex::Female},