#[warn(unused_variables)] use std::io::Write; use std::fs::OpenOptions; //use struct_iterable::Iterable; //Enumeracion especialidad enum Especialidad{ IT,RecursosHumanos,Marketing } //Enumeracion de los meses #[derive(Copy, Clone)] enum Meses{ Enero,Febrero,Marzo,Abril,Mayo,Junio, Julio,Agosto,Septiembre,Octubre,Noviembre,Diciembre } //Estructura Empleado struct Empleado { nombre:String, apellido:String, edad:u8, especialidad:Especialidad, mes:Meses } //Devuelve un String con los datos del empleado fn dato_empleado(empleado:&Empleado)->String{ let mut tmp:String=Default::default(); tmp += &empleado.nombre ; tmp +=" , "; tmp += &empleado.apellido; tmp +=" , "; tmp += &empleado.edad.to_string(); tmp += " , "; //tmp += &empleado.especialidad.to_string(); match &empleado.especialidad { Especialidad::IT=>{ tmp+=" It "; }, Especialidad::RecursosHumanos=>{ tmp+=" Recursos Humanos " }, Especialidad::Marketing =>{ tmp+= " Marketing "; } } tmp += " , "; tmp += (((empleado.mes)as u8).to_string()).as_str() ; tmp +="\n"; tmp } //Escribe en un fichero "nombre" los datos del empleado fn escribe_fichero(nombre: &String,datos :&String) ->std::io::Result<()>{ let mut fichero= OpenOptions::new() .write(true) .append(true) .create(true) .open(nombre)?; fichero.write_all(datos.as_bytes())?; Ok(()) } fn main (){ //Nombre del fichero a escribir let nombre_fichero:String ="ejemplo.txt".to_string(); //Crea 3 empleados let empleado= Empleado{ nombre:String::from ("Tony"), apellido:String::from ("Villa"), edad:55, especialidad:Especialidad::RecursosHumanos, mes:Meses::Julio }; let empleado2= Empleado{ nombre:String::from ("Gilles"), apellido:String::from ("Pignatta"), edad:56, especialidad:Especialidad::Marketing, mes:Meses::Abril }; let empleado3=Empleado{ nombre:String::from ("Frank"), apellido:String::from ("Clerissi"), edad:57, especialidad:Especialidad::IT, mes:Meses::Febrero }; //Escribe en el fichero los datos del empleado let _= escribe_fichero(&nombre_fichero,& dato_empleado(&empleado)); let _= escribe_fichero(&nombre_fichero,& dato_empleado(&empleado2)); let _= escribe_fichero(&nombre_fichero,& dato_empleado(&empleado3)); }