#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, enum_fields::EnumFields)]
pub enum Entity {
Person {
name: String,
},
House {
name: Option<String>,
},
Animal {
name: Option<String>,
},
}
fn main() {
let company = Entity::Person {
name: "Apple".into(),
};
let person = Entity::Person {
name: "Tim Berners-Lee".into()
};
println!("Company named: {:?}",
company.name()
);
println!("Person named: {:?}", person.name());
assert_eq!(company.name(), Some(&"Apple".to_string()));
assert_eq!(person.name(), Some(&"Tim Berners-Lee".to_string()));
}