1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
use super::SmtpHost;
use crate::common::*;
#[derive(Eq, PartialEq, Debug, Clone)]
pub enum SmtpPath {
Mailbox {
name: String,
host: SmtpHost,
relays: Vec<SmtpHost>,
},
Postmaster,
Null,
}
impl SmtpPath {
pub fn address(&self) -> String {
match *self {
SmtpPath::Null => String::new(),
SmtpPath::Postmaster => "POSTMASTER".to_owned(),
SmtpPath::Mailbox {
ref name, ref host, ..
} => format!("{}@{}", name, host),
}
}
}
impl fmt::Display for SmtpPath {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "<{}>", self.address())
}
}