use std::time::Duration;
use crate::connection::driver_tls_config::DriverTlsConfig;
const DEFAULT_REQUEST_TIMEOUT: Duration = Duration::from_secs(2 * 60 * 60); const DEFAULT_REDIRECT_FAILOVER_RETRIES: usize = 1;
#[derive(Debug, Clone)]
pub struct DriverOptions {
pub tls_config: DriverTlsConfig,
pub request_timeout: Duration,
pub primary_failover_retries: usize,
}
impl DriverOptions {
pub fn new(tls_config: DriverTlsConfig) -> Self {
Self { tls_config, ..Default::default() }
}
pub fn tls_config(self, tls_config: DriverTlsConfig) -> Self {
Self { tls_config, ..self }
}
pub fn request_timeout(self, request_timeout: Duration) -> Self {
Self { request_timeout, ..self }
}
pub fn primary_failover_retries(self, primary_failover_retries: usize) -> Self {
Self { primary_failover_retries, ..self }
}
}
impl Default for DriverOptions {
fn default() -> Self {
Self {
tls_config: DriverTlsConfig::default(),
request_timeout: DEFAULT_REQUEST_TIMEOUT,
primary_failover_retries: DEFAULT_REDIRECT_FAILOVER_RETRIES,
}
}
}