abci/
address.rs

1use std::net::SocketAddr;
2#[cfg(unix)]
3use std::path::PathBuf;
4
5#[cfg(test)]
6use mock_io::tokio::MockListener;
7
8/// Address of ABCI Server
9#[derive(Debug)]
10pub enum Address {
11    /// TCP Address
12    Tcp(SocketAddr),
13    /// UDS Address
14    #[cfg(unix)]
15    #[cfg_attr(feature = "doc", doc(cfg(unix)))]
16    Uds(PathBuf),
17    /// Mock Address
18    #[cfg(test)]
19    Mock(MockListener),
20}
21
22impl From<SocketAddr> for Address {
23    fn from(addr: SocketAddr) -> Self {
24        Self::Tcp(addr)
25    }
26}
27
28#[cfg(unix)]
29impl From<PathBuf> for Address {
30    fn from(path: PathBuf) -> Self {
31        Self::Uds(path)
32    }
33}
34
35#[cfg(test)]
36impl From<MockListener> for Address {
37    fn from(listener: MockListener) -> Self {
38        Self::Mock(listener)
39    }
40}