use crate::server::ServerAdapter;
pub struct EasyHttpMockConfigBuilder<S>
where
S: ServerAdapter,
{
base_url: Option<String>,
pub(crate) server_config: S::Config,
}
impl<S> EasyHttpMockConfigBuilder<S>
where
S: ServerAdapter,
{
pub fn base_url(mut self, base_url: Option<String>) -> Self {
self.base_url = base_url;
self
}
pub fn server_config(mut self, server_config: S::Config) -> Self {
self.server_config = server_config;
self
}
pub fn build(self) -> EasyHttpMockConfig<S> {
EasyHttpMockConfig {
base_url: self.base_url,
server_config: self.server_config,
}
}
}
#[derive(Clone)]
pub struct EasyHttpMockConfig<S>
where
S: ServerAdapter,
{
pub(crate) base_url: Option<String>,
pub(crate) server_config: S::Config,
}
impl<S> Default for EasyHttpMockConfig<S>
where
S: ServerAdapter + Default,
S::Config: Clone + Default,
{
fn default() -> Self {
Self {
base_url: None,
server_config: S::Config::default(),
}
}
}
impl<S> EasyHttpMockConfig<S>
where
S: ServerAdapter,
S::Config: Clone + Default,
{
pub fn builder() -> EasyHttpMockConfigBuilder<S> {
EasyHttpMockConfigBuilder {
base_url: None,
server_config: S::Config::default(),
}
}
pub fn base_url(&self) -> &Option<String> {
&self.base_url
}
pub fn server_config(&self) -> &S::Config {
&self.server_config
}
}