use std::{io, time::Duration};
use ureq::Agent;
pub mod amber_geostd;
pub mod chebi;
pub mod drugbank;
pub mod lmsd;
pub mod ncbi;
pub mod pdbe;
pub mod pubchem;
pub mod rcsb;
pub mod rhea;
pub mod uniprot;
#[derive(Debug)]
pub enum ReqError {
Http,
Ser(serde_json::Error),
Deserialize,
Io(io::Error),
}
impl From<ureq::Error> for ReqError {
fn from(_err: ureq::Error) -> Self {
Self::Http
}
}
impl From<serde_json::Error> for ReqError {
fn from(err: serde_json::Error) -> Self {
Self::Ser(err)
}
}
impl From<io::Error> for ReqError {
fn from(err: io::Error) -> Self {
Self::Io(err)
}
}
const HTTP_TIMEOUT: u64 = 5;
fn make_agent() -> Agent {
let config = Agent::config_builder()
.timeout_global(Some(Duration::from_secs(HTTP_TIMEOUT)))
.http_status_as_error(false)
.build();
config.into()
}