diff --git a/README.md b/README.md index d02f3a3..23eb4df 100644 --- a/README.md +++ b/README.md @@ -27,3 +27,4 @@ - https://tinchicus.com/2022/07/06/rust-punto-y-coma/ (ejemplo02) - https://tinchicus.com/2022/07/12/rust-memoria-estatica/ (ejemplo03) - https://tinchicus.com/2022/07/13/rust-struct/ (estructura) +- https://tinchicus.com/2022/07/14/rust-struct-en-multiples-archivos/ (estructura2) diff --git a/estructura2/Cargo.toml b/estructura2/Cargo.toml new file mode 100644 index 0000000..fb0b4f4 --- /dev/null +++ b/estructura2/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "estructura2" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/estructura2/src/main.rs b/estructura2/src/main.rs new file mode 100644 index 0000000..d80a75d --- /dev/null +++ b/estructura2/src/main.rs @@ -0,0 +1,47 @@ +mod persona; +use persona::*; +fn main() { + let usuario = Persona { + nombre: String::from("Martin"), + apellido: String::from("Miranda"), + edad: 45, + area: Area { + oficina: String::from("IT"), + puesto: String::from("Desarrollador"), + }, + nomina: Nomina { + bruto: 100000, + neto: 50000, + }, + }; + + println!("Nombre: {}", usuario.nombre); + println!("Apellido: {}", usuario.apellido); + println!("Edad: {}", usuario.edad); + println!("Oficina: {}", usuario.area.oficina); + println!("Puesto: {}", usuario.area.puesto); + println!("Bruto: {}", usuario.nomina.bruto); + println!("Neto: {}", usuario.nomina.neto); + + let usuario2 = Persona { + nombre: String::from("Enzo"), + apellido: String::from("Tortore"), + edad: 33, + area: Area { + oficina: String::from("DB"), + puesto: String::from("Administrador"), + }, + nomina: Nomina { + bruto: usuario.nomina.bruto, + neto: usuario.nomina.neto, + }, + }; + + println!("Nombre: {}", usuario2.nombre); + println!("Apellido: {}", usuario2.apellido); + println!("Edad: {}", usuario2.edad); + println!("Oficina: {}", usuario2.area.oficina); + println!("Puesto: {}", usuario2.area.puesto); + println!("Bruto: {}", usuario2.nomina.bruto); + println!("Neto: {}", usuario2.nomina.neto); +} diff --git a/estructura2/src/persona/area.rs b/estructura2/src/persona/area.rs new file mode 100644 index 0000000..711cfba --- /dev/null +++ b/estructura2/src/persona/area.rs @@ -0,0 +1,4 @@ +pub struct Area { + pub oficina: String, + pub puesto: String, +} diff --git a/estructura2/src/persona/mod.rs b/estructura2/src/persona/mod.rs new file mode 100644 index 0000000..0cdd580 --- /dev/null +++ b/estructura2/src/persona/mod.rs @@ -0,0 +1,12 @@ +pub mod area; +pub use area::*; +pub mod nomina; +pub use nomina::*; + +pub struct Persona { + pub nombre: String, + pub edad: i32, + pub apellido: String, + pub area: Area, + pub nomina: Nomina, +} diff --git a/estructura2/src/persona/nomina.rs b/estructura2/src/persona/nomina.rs new file mode 100644 index 0000000..5d36c4e --- /dev/null +++ b/estructura2/src/persona/nomina.rs @@ -0,0 +1,4 @@ +pub struct Nomina { + pub bruto: i32, + pub neto: i32, +}