use std::{borrow::Cow, time::Duration};
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
pub enum CachingBehavior {
Disabled,
#[default]
BestEffort,
}
#[derive(Debug, Clone, Default, PartialEq, Eq)]
pub enum ProxyOptions {
#[default]
Default,
None,
Custom {
http: Option<Cow<'static, str>>,
https: Option<Cow<'static, str>>,
proxy_bypass: Option<Cow<'static, str>>,
},
}
#[derive(Debug, Clone)]
pub struct ClientOptions {
pub base_url: Option<String>,
pub user_agent: Option<String>,
pub default_headers: Vec<(String, String)>,
pub caching_behavior: CachingBehavior,
pub proxy_options: ProxyOptions,
pub use_cookies: bool,
pub follow_redirects: bool,
pub max_response_buffer_size: Option<u64>,
pub request_timeout: Option<Duration>,
pub ignore_certificate_errors: bool,
}
impl Default for ClientOptions {
#[inline]
fn default() -> Self {
Self {
base_url: None,
user_agent: None,
default_headers: vec![],
caching_behavior: CachingBehavior::default(),
proxy_options: ProxyOptions::default(),
use_cookies: true,
follow_redirects: true,
max_response_buffer_size: None,
request_timeout: None,
ignore_certificate_errors: false,
}
}
}