From 82bcc1569d38d6628f6edf62f6c8bb6aee21159f Mon Sep 17 00:00:00 2001 From: martin machiebe Date: Mon, 17 Feb 2025 18:14:15 +0100 Subject: [PATCH 1/2] feat: impl user registry --- src/userRegistry.rs | 110 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 src/userRegistry.rs diff --git a/src/userRegistry.rs b/src/userRegistry.rs new file mode 100644 index 0000000..dbf13df --- /dev/null +++ b/src/userRegistry.rs @@ -0,0 +1,110 @@ +fn user_registry() { + // intro_to_u(); + + + let mut new_user = User::new_user("martin".to_string(), 19, MaritalStatus::Single, SexEnum::Male, 3); + println!("User created successfully _______ {:#?}", new_user); + + let update_marital_status = User::update_marital_status(&new_user, MaritalStatus::Married); + println!("User update_marital_status Updated Successfully {:#?}", update_marital_status); + + // User::update_name(&mut new_user, "johnny".to_string()); + // println!("User update_name Updated Successfully {:#?}", new_user); + + let update_name = User::update_name(&new_user, "johnny".to_string()); + println!("User update_name Updated Successfully {:#?}", update_name); + + let update_age = User::update_age(&new_user, 22); + println!("User update_name Updated Successfully {:#?}", update_age); + + let update_sex_status = User::update_sex(&new_user, SexEnum::Female); + println!("User update_marital_status Updated Successfully {:#?}", update_sex_status); +} + +#[derive(Debug, Clone)] +struct User { + name: String, + age: u8, + marital_status: MaritalStatus, + sex: SexEnum, + id: u32 +} + +#[derive(Debug, Clone, Copy)] +enum MaritalStatus { + Single, + Married +} + +#[derive(Debug, Copy, Clone)] +enum SexEnum { + Male, + Female +} + +impl User { + fn new_user(_name: String, _age: u8, _marital_status: MaritalStatus, _sex: SexEnum, _id: u32) -> User { + let user = User { + name: _name, + age: _age, + marital_status: _marital_status, + sex: _sex, + id: _id, + }; + user + } + + fn update_marital_status(&self, _marital_status: MaritalStatus) -> User { + match _marital_status { + MaritalStatus::Single => println!("you're single {:?}", _marital_status), + _ => println!("you're {:?}", _marital_status), + } + + let update_user = User { + name: self.name.to_string(), + age: self.age, + marital_status: _marital_status, + sex: self.sex.clone(), + id: self.id + }; + update_user + } + + // fn update_name(&mut self, _name: String) { + // self.name = _name + // } + + fn update_name(&self, _name: String) -> User { + let update_user = User { + name: _name, + age: self.age, + marital_status: self.marital_status.clone(), + sex: self.sex.clone(), + id: self.id + }; + update_user + } + + fn update_age(&self, _age: u8) -> User { + let update_user = User { + name: self.name.to_string(), + age: _age, + marital_status: self.marital_status.clone(), + sex: self.sex.clone(), + id: self.id + }; + update_user + } + + fn update_sex(&self, _sex: SexEnum) -> User { + let update_user = User { + name: self.name.to_string(), + age: self.age, + marital_status: self.marital_status.clone(), + sex: _sex, + id: self.id + }; + update_user + } + +} \ No newline at end of file From ced94008baad3c12357228ce55d66ad68ab52b2d Mon Sep 17 00:00:00 2001 From: sprtd Date: Mon, 17 Feb 2025 18:44:15 +0100 Subject: [PATCH 2/2] chore: exec user_registry --- src/main.rs | 10 ++++++---- src/userRegistry.rs | 8 ++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/main.rs b/src/main.rs index d59e618..4ad0153 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,9 +3,11 @@ mod float; mod signed; mod string; mod unsigned; +mod userRegistry; fn main() { - unsigned::intro_to_u(); - signed::intro_to_i(); - float::intro_to_float(); - string::strings(); + // unsigned::intro_to_u(); + // signed::intro_to_i(); + // float::intro_to_float(); + // string::strings(); + userRegistry::user_registry(); } diff --git a/src/userRegistry.rs b/src/userRegistry.rs index dbf13df..0291462 100644 --- a/src/userRegistry.rs +++ b/src/userRegistry.rs @@ -1,4 +1,4 @@ -fn user_registry() { +pub fn user_registry() { // intro_to_u(); @@ -70,9 +70,9 @@ impl User { update_user } - // fn update_name(&mut self, _name: String) { - // self.name = _name - // } + fn update_name_(&mut self, _name: String) { + self.name = _name + } fn update_name(&self, _name: String) -> User { let update_user = User {