use serde::Serialize;
#[derive(Debug, Clone, Serialize)]
pub struct ProxyConfig {
pub url: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub username: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub password: Option<String>,
}
impl ProxyConfig {
pub fn new(url: impl Into<String>) -> Self {
Self {
url: url.into(),
username: None,
password: None,
}
}
pub fn http(url: impl Into<String>) -> Self {
Self::new(url)
}
pub fn with_auth(mut self, user: impl Into<String>, pass: impl Into<String>) -> Self {
self.username = Some(user.into());
self.password = Some(pass.into());
self
}
}