rl_lang/interpreter/stdlib/net/
resolve.rs1use std::net::ToSocketAddrs;
2
3use crate::interpreter::{
4 evaluator::Evaluator,
5 stdlib::common::{verr, vok, vs},
6 values::Value,
7};
8
9pub fn func(_: &mut Evaluator, host_port: String) -> Value {
10 match host_port.to_socket_addrs() {
11 Ok(addrs) => {
12 let items: Vec<Value> = addrs.map(|a| vs!(a.ip().to_string())).collect();
13 vok!(Value::Values {
14 items_type: crate::ast::statements::TypeAnnotation::String,
15 items,
16 })
17 }
18 Err(e) => verr!(vs!(format!("resolve(\"{}\"): {}", host_port, e))),
19 }
20}