use crate::error::NetSemError;
use std::net::SocketAddr;
pub fn validate_socket_addr(s: &str) -> Result<SocketAddr, NetSemError> {
s.parse::<SocketAddr>()
.map_err(|_| NetSemError::InvalidSocketAddr(s.to_owned()))
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_validate_socket_addr() {
assert!(validate_socket_addr("127.0.0.1:8080").is_ok());
assert!(validate_socket_addr("[::1]:80").is_ok());
assert!(matches!(
validate_socket_addr("127.0.0.1").unwrap_err(),
NetSemError::InvalidSocketAddr(_)
));
assert!(matches!(
validate_socket_addr("256.0.0.1:80").unwrap_err(),
NetSemError::InvalidSocketAddr(_)
));
}
}