#[derive(Clone, Ord, PartialOrd, Eq, PartialEq, Hash, Debug)]
pub(crate) struct HttpBasicAuth {
pub(crate) username: String,
pub(crate) password: String,
}
#[derive(Clone, Ord, PartialOrd, Eq, PartialEq, Hash, Debug)]
pub struct HttpProxyConfig {
pub(crate) address: String,
pub(crate) basic_auth: Option<HttpBasicAuth>,
}
#[derive(Clone, Ord, PartialOrd, Eq, PartialEq, Hash, Debug)]
pub struct HttpProxyConfigBuilder {
address: String,
basic_auth: Option<HttpBasicAuth>,
}
impl HttpProxyConfigBuilder {
pub fn new(address: String) -> Self {
Self {
address,
basic_auth: None,
}
}
pub fn with_basic_auth(mut self, username: String, password: String) -> Self {
self.basic_auth = Some(HttpBasicAuth { password, username });
self
}
pub fn build(self) -> HttpProxyConfig {
HttpProxyConfig {
basic_auth: self.basic_auth,
address: self.address,
}
}
}