async fn response( name: String, validator: Validator, remote: Option<SocketAddr>, ) -> Result<impl warp::Reply, warp::Rejection> { if let Some(addr) = remote { let ip_string = addr.ip().to_string(); if validator.is_valid(ip_string.clone()).await { Ok(format!("Hello, {} from {}!", name, &ip_string)) } else { Ok(format!("No key for {}!", &ip_string)) } } else { Ok("No remote address!".to_string()) } }