INNER CODE UNIT · Rust
parse_endpoint_list
CluvexStudio/Aether · aether/src/lib.rs:236
fn parse_endpoint_list(raw: &str) -> Result<Vec<SocketAddr>> {
let mut peers = Vec::new();
for part in raw.split([',', ';', ' ']) {
if part.trim().is_empty() {
continue;
}
peers.push(parse_endpoint(part)?);
}
match peers.len() {
0 => Err(AetherError::Other(
"no endpoint was given; expected one or two addresses".to_string(),
)),
1 | 2 => Ok(peers),
found => Err(AetherError::Other(format!(
"warp-in-warp has two hops, but {found} addresses were given"
))),