use crate::email::EmailAddress;
#[derive(Debug, Clone, PartialEq, Eq, Default)]
pub struct Contact {
pub name: Option<String>,
pub email: Option<EmailAddress>,
pub phone: Option<String>,
}
impl Contact {
pub fn is_empty(&self) -> bool {
self.email.is_none() && self.phone.is_none()
}
}
#[cfg(test)]
pub mod tests {
use super::*;
#[test]
fn empty_contact() {
assert!(Contact::default().is_empty());
let c = Contact {
email: Some("foo@bar".parse().unwrap()),
..Default::default()
};
assert!(!c.is_empty());
let c = Contact {
phone: Some("123".into()),
..Default::default()
};
assert!(!c.is_empty());
}
}