melib/email/address: return Option in get_display_name

master
Manos Pitsidianakis 2020-09-09 22:31:13 +03:00
parent c6c0da7fcb
commit d57dd9c98e
Signed by: Manos Pitsidianakis
GPG Key ID: 73627C2F690DF710
2 changed files with 12 additions and 5 deletions

View File

@ -87,8 +87,8 @@ impl PartialEq for MailboxAddress {
/// ```rust /// ```rust
/// let (rest_bytes, addr) = melib::email::parser::address::address("=?utf-8?q?J=C3=B6rg_Doe?= <joerg@example.com>".as_bytes()).unwrap(); /// let (rest_bytes, addr) = melib::email::parser::address::address("=?utf-8?q?J=C3=B6rg_Doe?= <joerg@example.com>".as_bytes()).unwrap();
/// assert!(rest_bytes.is_empty()); /// assert!(rest_bytes.is_empty());
/// assert_eq!(addr.get_display_name(), "Jörg Doe"); /// assert_eq!(addr.get_display_name(), Some("Jörg Doe".to_string()));
/// assert_eq!(addr.get_email(), "joerg@example.com"); /// assert_eq!(addr.get_email(), "joerg@example.com".to_string());
/// ``` /// ```
#[derive(Clone, Serialize, Deserialize)] #[derive(Clone, Serialize, Deserialize)]
pub enum Address { pub enum Address {
@ -167,10 +167,15 @@ impl Address {
/// │ │ /// │ │
/// address_spec address_spec /// address_spec address_spec
///``` ///```
pub fn get_display_name(&self) -> String { pub fn get_display_name(&self) -> Option<String> {
match self { let ret = match self {
Address::Mailbox(m) => m.display_name.display(&m.raw), Address::Mailbox(m) => m.display_name.display(&m.raw),
Address::Group(g) => g.display_name.display(&g.raw), Address::Group(g) => g.display_name.display(&g.raw),
};
if ret.is_empty() {
None
} else {
Some(ret)
} }
} }

View File

@ -1212,7 +1212,9 @@ impl Component for MailView {
for addr in envelope.from().iter().chain(envelope.to().iter()) { for addr in envelope.from().iter().chain(envelope.to().iter()) {
let mut new_card: Card = Card::new(); let mut new_card: Card = Card::new();
new_card.set_email(addr.get_email()); new_card.set_email(addr.get_email());
new_card.set_name(addr.get_display_name()); if let Some(display_name) = addr.get_display_name() {
new_card.set_name(display_name);
}
entries.push((new_card, format!("{}", addr))); entries.push((new_card, format!("{}", addr)));
} }
drop(envelope); drop(envelope);