
The previous project architecture was far too complicated and hard to maintain. The new one is much more simple. Although procedural macros are cools, they are a no-go on Rust-OpenSMTPD. Reports and filter are implemented (except data-line) but untested.
20 lines
454 B
Rust
20 lines
454 B
Rust
use std::net::SocketAddr;
|
|
use std::path::PathBuf;
|
|
|
|
#[derive(Debug)]
|
|
pub enum Address {
|
|
Ip(SocketAddr),
|
|
UnixSocket(PathBuf),
|
|
}
|
|
|
|
impl ToString for Address {
|
|
fn to_string(&self) -> String {
|
|
match self {
|
|
Address::Ip(a) => a.to_string(),
|
|
Address::UnixSocket(a) => match a.clone().into_os_string().into_string() {
|
|
Ok(s) => s,
|
|
Err(_) => String::new(),
|
|
},
|
|
}
|
|
}
|
|
}
|