Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //main.rs
- // pub struct Utente {
- // attivo: bool,
- // username: String,
- // email: String,
- // }
- mod modulo;
- trait Contattabile {
- fn get_contact(&self) -> String;
- }
- fn main() {
- // let mut _utente1 = modulo::Utente {
- // username: String::from("fcamuso"),
- // email: String::from("fcamuso@gmail.com"),
- // attivo: true,
- // };
- let mut _utente1 = modulo::Utente::new(
- String::from("fcamuso"),
- true,
- String::from("fcamuso@gmail.com")
- );
- println!("{}",_utente1.get_user());
- // _utente1.email = String::from("fcamuso@mailg.com");
- // println!("{}", _utente1.email);
- let mut _ditta1 = modulo::Ditta::new(
- String::from("ACME spa"),
- String::from("acmespa@gmail.com")
- );
- let mut _contatti: Vec<Box<dyn Contattabile>> =
- vec![Box::new(_utente1), Box::new(_ditta1)];
- for contatto in _contatti {
- println!("{}", contatto.get_contact());
- }
- }
- // ------------------------------------------------------------------------
- //modulo.rs
- use crate::Contattabile;
- pub struct Utente {
- username: String,
- attivo: bool,
- email: String,
- }
- impl Contattabile for Utente
- {
- fn get_contact(&self) -> String {
- self.email.clone()
- }
- }
- impl Utente {
- pub fn new(username: String, attivo: bool, email: String ) -> Self {
- Self { username, attivo, email }
- }
- pub fn get_user(&self) -> String {
- self.username.clone()
- }
- }
- pub struct Ditta {
- ragione_sociale: String,
- indirizzo_mail: String
- }
- impl Ditta {
- pub fn new(ragione_sociale: String, indirizzo_mail: String ) -> Self {
- Self { ragione_sociale, indirizzo_mail }
- }
- }
- impl Contattabile for Ditta
- {
- fn get_contact(&self) -> String {
- self.indirizzo_mail.clone()
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement