struct en multiples archivos

This commit is contained in:
2023-06-19 11:46:38 +02:00
parent d60fd485e8
commit eec80bdf24
6 changed files with 76 additions and 0 deletions

47
estructura2/src/main.rs Normal file
View File

@@ -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);
}

View File

@@ -0,0 +1,4 @@
pub struct Area {
pub oficina: String,
pub puesto: String,
}

View File

@@ -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,
}

View File

@@ -0,0 +1,4 @@
pub struct Nomina {
pub bruto: i32,
pub neto: i32,
}