pub struct BlockingHttp;
impl BlockingHttp {
pub fn get(
#[allow(unused_mut)] mut builders: impl Iterator<Item = nyquest::ClientBuilder>,
path: String,
) -> Result<nyquest::blocking::Response, nyquest::Error> {
cfg_select! {
feature = "multi-server" => {
let mut last_err = nyquest::Error::InvalidUrl;
for builder in builders {
match builder
.build_blocking()?
.request(nyquest::Request::get(path.clone()))
.and_then(|res| res.with_successful_status())
{
Ok(res) => return Ok(res),
Err(e) => last_err = e,
}
}
Err(last_err)
}
_ => {
let client = unsafe { builders.next().unwrap_unchecked() }.build_blocking()?;
client.request(nyquest::Request::get(path))
}
}
}
}