use crate::eco::{EcoRequestSettings, Response, Root}; use crate::http::HttpClient; use crate::{GDResult, TimeoutSettings}; use std::net::{IpAddr, SocketAddr}; /// Query an eco server. #[inline] pub fn query(address: &IpAddr, port: Option) -> GDResult { query_with_timeout(address, port, &None) } /// Query an eco server. #[inline] pub fn query_with_timeout( address: &IpAddr, port: Option, timeout_settings: &Option, ) -> GDResult { query_with_timeout_and_extra_settings(address, port, timeout_settings, None) } /// Query an eco server. pub fn query_with_timeout_and_extra_settings( address: &IpAddr, port: Option, timeout_settings: &Option, extra_settings: Option, ) -> GDResult { let address = &SocketAddr::new(*address, port.unwrap_or(3001)); let mut client = HttpClient::new( address, timeout_settings, extra_settings.unwrap_or_default().into(), )?; let response = client.get_json::("/frontpage", None)?; Ok(response.into()) }