pub struct EndpointAddr {
pub host: String,
pub port: Option<u16>,
pub path: String,
pub peer: Option<Fingerprint>,
}Expand description
A parsed weida://[fingerprint@]host[:port]/path address.
Fields§
§host: StringHost as written: a DNS name or an IP literal without brackets.
port: Option<u16>Port as written, or None when the URL names none.
None is not a missing value: it is the statement that the authority
names a set of equivalent nodes, resolved through DNS and dialled
on DEFAULT_PORT (decisions/0020
§4.2). A written port means exactly one endpoint and no discovery.
path: StringOpaque endpoint identifier, starting with /.
peer: Option<Fingerprint>The peer’s public-key fingerprint, when the address names one.
When present it is the only identity the dialling side accepts for this address, whatever else it trusts.
Implementations§
Source§impl EndpointAddr
impl EndpointAddr
Sourcepub fn parse(input: &str) -> Result<EndpointAddr, Error>
pub fn parse(input: &str) -> Result<EndpointAddr, Error>
Parses a weida://[fingerprint@]host[:port]/path URL.
The port is optional, and its absence is meaningful rather than
lenient: it selects discovery, where the host names a set of nodes and
DEFAULT_PORT is the port (0020 §4.2). IPv6 literals are bracketed,
the fingerprint is in Fingerprint’s text form, and the path is
validated by validate_endpoint_path.