dbus_server_address_parser/
address.rs

1use crate::{Autolaunch, Launchd, NonceTcp, Systemd, Tcp, Unix, Unixexec};
2
3/// This represents a DBus [server address].
4///
5/// [server address]: https://dbus.freedesktop.org/doc/dbus-specification.html#addresses
6#[derive(Debug, Clone, PartialEq, Eq)]
7pub enum Address {
8    Unix(Unix),
9    Launchd(Launchd),
10    Tcp(Tcp),
11    NonceTcp(NonceTcp),
12    Unixexec(Unixexec),
13    Systemd(Systemd),
14    Autolaunch(Autolaunch),
15}
16
17impl Address {
18    pub fn is_connectable(&self) -> bool {
19        match self {
20            Address::Unix(unix) => unix.is_connectable(),
21            Address::Launchd(launchd) => launchd.is_connectable(),
22            Address::Tcp(tcp) => tcp.is_connectable(),
23            Address::NonceTcp(nonce_tcp) => nonce_tcp.is_connectable(),
24            Address::Unixexec(unixexec) => unixexec.is_connectable(),
25            Address::Systemd(systemd) => systemd.is_connectable(),
26            Address::Autolaunch(autolaunch) => autolaunch.is_connectable(),
27        }
28    }
29
30    pub fn is_listenable(&self) -> bool {
31        match self {
32            Address::Unix(unix) => unix.is_listenable(),
33            Address::Launchd(launchd) => launchd.is_listenable(),
34            Address::Tcp(tcp) => tcp.is_listenable(),
35            Address::NonceTcp(nonce_tcp) => nonce_tcp.is_listenable(),
36            Address::Unixexec(unixexec) => unixexec.is_listenable(),
37            Address::Systemd(systemd) => systemd.is_listenable(),
38            Address::Autolaunch(autolaunch) => autolaunch.is_listenable(),
39        }
40    }
41}